[PYTHON] Début de PyPi J'ai essayé de rendre possible l'installation d'une bibliothèque pour vérifier les vacances japonaises

Au moment où il a été terminé, cookies a réalisé 20 millions d'exemplaires.

Aperçu et fonctionnalités

Découvrez si aujourd'hui est un jour férié à l'aide de l'API Google Calendar v3. La fonctionnalité est que le résultat de la requête API est stocké dans le cache de classe, donc même s'il est appelé 10 000 fois, il répondra en 1 seconde. https://pypi.python.org/pypi/japan_holiday

install

pip install japan_holiday

Comment utiliser

#Déterminez si aujourd'hui est un jour férié(today is holiday)
from japan_holiday import JapanHoliday
JapanHoliday(google_api_token).today()
>>>False

#Déterminez si aujourd'hui est un jour férié ou un week-end(today is holiday or weekend)
JapanHoliday(google_api_token).today(weekend=True)
>>>True

#Déterminez si la date désignée est un jour férié ou un week-end(the chosen day is holiday or weekend)
from datetime import datetime
now = datetime(2016, 1, 8, 00, 00, 00)
JapanHoliday(google_api_token).check(now=now, weekend=True)
>>>True

# list
JapanHoliday(google_api_token).get_holiday_calender(2015)
>>>[Nouveau jour:2015/1/1,Journée adulte:2015/1/12,jour fondation:2015/2/11,Journée de l'équinoxe vernal:2015/3/21,Showa Day:2015/4/29,Anniversaire constitutionnel:2015/5/3,Jour vert:2015/5/4,La journée des enfants:2015/5/5,Anniversaire constitutionnel 振替休日:2015/5/6,Journée de la mer:2015/7/20,Journée Keiro:2015/9/21,fête nationale:2015/9/22,Jour d'automne:2015/9/23,Journée d'éducation physique:2015/10/12,Journée de la culture:2015/11/3,Action de grâce du travail:2015/11/23,Anniversaire de l'empereur:2015/12/23]

Essayez de créer PyPi pour la première fois

Je savais déjà qu'une bibliothèque similaire existe, mais j'avais besoin d'un jeton API Google pour l'utiliser. Découvrez comment les jetons ne sont pas nécessaires [XML Feed](https://www.google.com/calendar/feeds/japanese__ja%40holiday.calendar.google.com/public/basic?start-min=2015-10 -01 & start-max = 2015-12-31 & alt = json) Il semble que ce ne soit pas nécessaire. Le développement a vraiment commencé.

Lorsqu'il est presque terminé, [flux XML](https://www.google.com/calendar/feeds/japanese__ja%40holiday.calendar.google.com/public/basic?start-min=2015-10-01&start-max= Si vous regardez de plus près le 31/12/2015 & alt = json) ... スクリーンショット 2015-10-16 19.25.35.png

J'ai décidé de changer de direction et d'utiliser des jetons pour accéder à l'API. Il s'agit d'un syndrome inséparable typique qui ne peut être différencié des bibliothèques existantes, mais qui a été créé jusqu'à présent. Puisqu'il n'y a aucune aide pour cela, j'ai essayé de le rendre différent en me concentrant sur les trois points de l'écriture correcte du document, rendant la direction plus simple et plus rapide.

Je m'égare parce que c'est assez inutile. La conception et la vérification sont importantes.

PyPi est plutôt putain

Le mécanisme de pip est très pratique et merveilleux, mais du point de vue du déclarant, c'était assez merdique. Si vous pensez que vous pouvez facilement vous inscrire car la procédure est dispersée sur le WEB, [Enregistrez l'ID d'enregistrement et le mot de passe en texte brut sur le PC](http://stackoverflow.com/questions/1569315/setup-py-upload- is-failing-with-upload-failed-401-you-must-be-identity-t), ou la méthode standard d'écriture de setup.py n'est pas en place. Cependant, comme il s'agit d'un mécanisme pratique qui supprime un inconvénient aussi insignifiant, il est susceptible d'être utilisé pendant longtemps (Pip de Python 3.4 devient un installateur standard!?). Hey.

PyPi peut être apprécié si vous faites attention à ici

Il existe différentes écoles d'écriture setup.py, donc j'étais très confus au début. Si vous vous perdez, vous pouvez le trouver plus facilement en vous référant à requests et redis.

Enfin, lors de mon inscription à PyPi, je voudrais conclure en présentant ce que je pensais être celui qui a fait cela.

1. Échec

Le nom du module a échoué. Vous écrirez ceci lors de l'importation.

from japan_holiday import JapanHoliday

Souligner Je me sens mal à l'aise, alors j'aimerais faire attention la prochaine fois.

2. Prendre des mesures contre le référencement

Vous pouvez tout écrire en anglais, mais surtout avec une bibliothèque nationale comme celle-ci, les pays qui devraient être utilisés sont limités, alors essayez de saisir des mots-clés japonais afin de vous faire prendre lors de la recherche en japonais. C'était. Peut-être que cette histoire a ses avantages et ses inconvénients.

3. Gérez de manière centralisée README avec PyPi et GitHub

README.Gérez d'abord de manière centralisée avec PyPi et GitHub



import os
f = open(os.path.join(os.path.dirname(__file__), 'README.rst'))
long_description = f.read()
f.close()

setup(
    long_description=long_description,
...

Référence: https://github.com/andymccurdy/redis-py/blob/master/setup.py#L30

4. Gérer de manière centralisée la version avec PyPi et le module

Gérez la version de manière centralisée avec PyPi et le module


# 1. init.Pour py__version__ = '0.0.5'Écrire
# 2. setup.Appeler avec py
from redis import __version__
...
setup(
    name='redis',
    version=__version__,
...

Référence: https://github.com/andymccurdy/redis-py/blob/master/setup.py#L5

5. Si vous ne savez pas quoi écrire dans README.rst ..

L'anglais est épicé. Si vous ne savez pas quoi écrire, vous pouvez l'écrire en vous référant aux requêtes. demande GitHub PyPi des requêtes

Commande de mise à niveau de la version PyPi

python setup.py sdist upload

Recommended Posts

Début de PyPi J'ai essayé de rendre possible l'installation d'une bibliothèque pour vérifier les vacances japonaises
J'ai fait une bibliothèque pour bien séparer les phrases japonaises
J'ai trébuché lorsque j'ai essayé d'installer Basemap, donc un mémorandum
J'ai essayé de créer un linebot (implémentation)
J'ai essayé de créer un linebot (préparation)
J'étais accro à pip installer mysqlclient
Je veux installer Python avec PythonAnywhere
J'ai créé une API Web
J'ai fait un outil pour estimer le temps d'exécution de cron (+ débuts de PyPI)
J'ai essayé de créer une méthode de super résolution / ESPCN
J'ai essayé de publier mon propre module pour pouvoir l'installer
J'ai essayé de créer une méthode de super résolution / SRCNN ①
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
Notez la solution car django n'a pas pu s'installer avec pip
J'ai essayé de toucher la bibliothèque GUI de Python "PySimple GUI"
J'ai appliqué le classement SIF à un document japonais et essayé d'extraire des phrases clés
J'ai essayé de générer une chaîne de caractères aléatoire
J'ai essayé de créer une méthode de super résolution / SRCNN ③
J'ai essayé de créer une méthode de super résolution / SRCNN ②
J'ai créé un jeu ○ ✕ avec TensorFlow
Étapes pour installer votre propre bibliothèque avec pip
J'ai essayé de faire un "putain de gros convertisseur de littérature"
J'ai essayé d'implémenter un pseudo pachislot en Python
Je veux trouver un package populaire sur PyPi
J'ai un UnicodeDecodeError lorsque je pip installé sur ubuntu
[Go + Gin] J'ai essayé de créer un environnement Docker
Je souhaite installer un package de Php Redis
J'ai créé une bibliothèque python qui fait rouler le rang
J'ai essayé Kaokore, un ensemble de données japonais classique, sur EfficientNet.
Publier / télécharger une bibliothèque créée en Python vers PyPI
J'ai essayé d'installer scrapy sur Anaconda et je n'ai pas pu
J'ai essayé de dessiner un diagramme de configuration à l'aide de diagrammes
Comment installer pip
J'ai essayé de déboguer.
Quand j'ai essayé d'installer PIL et matplotlib dans un environnement virtualenv, j'en étais accro.
J'ai essayé d'implémenter une ligne moyenne mobile de volume avec Quantx
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
J'ai essayé de créer automatiquement un rapport avec la chaîne de Markov
[Chaîne de Markov] J'ai essayé de lire les citations en Python.
Étapes pour installer un package cloné Git localement avec pip
J'ai fait une fonction pour vérifier le modèle de DCGAN
J'ai essayé de publier ma propre bibliothèque de baseball Python sur Packaging & PyPI
J'ai essayé de résoudre le problème d'optimisation des combinaisons avec Qiskit
J'ai essayé "Comment obtenir une méthode décorée en Python"
J'ai essayé de commencer avec Hy ・ Définir une classe
Je veux installer le package de requirements.txt avec poésie
J'ai essayé d'automatiser [une certaine tâche] à l'aide d'une tarte à la râpe
J'ai essayé de trier une colonne FizzBuzz aléatoire avec un tri à bulles.
J'ai essayé de créer un bot pour annoncer un événement Wiire
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé de traduire de force des sous-titres anglais en japonais avec Udemy
J'ai essayé d'écrire dans un modèle de langage profondément appris
J'ai créé un éditeur de texte simple en utilisant PyQt
J'ai essayé d'apprendre PredNet
J'ai essayé d'organiser SVM.
J'ai essayé d'implémenter PCANet