Python, connu comme le langage de script du thon congelé, Il est également célèbre pour ses nombreux packages joliment nommés.
Référence: 7 termes Python que vous voulez lire à haute voix http://doloopwhile.hatenablog.com/entry/20120120/1327062714
Fasciné par ces forfaits magnifiquement nommés, ** Comment les packages magnifiquement nommés existent ** ** J'ai décidé d'enquêter sérieusement. ** **
Les informations de référence datent un peu de 2012, et Si vous cherchez à nouveau maintenant, vous trouverez sûrement ** des noms encore plus beaux **! !!
Système de gestion des packages Python = ** pip ** Les packages cibles sont tous Il est enregistré dans ** PyPI **. https://pypi.org/
Le nombre total est "** 219 370 *"! ( En février 2020) Ce n'est pas un montant qui peut être confirmé manuellement.
Je souhaite exclure les packages dormants qui ne sont pas du tout utilisés ** Paquets installés plus d'une fois au cours de la dernière année ** Je voudrais cibler. Par exemple, les listes de sites de référence, ** Pychinko ** Ne semble plus exister dans le monde et est exclu ** Pyzuri ** Malheureusement, il ne semble pas y avoir de téléchargement du tout, il est donc exclu.
Tous ces noms de packages et leurs informations de téléchargement Il peut être obtenu en utilisant ** pypinfo ** et ** BigQuery ** (les détails seront décrits plus tard).
Parce que le nom du package est alphanumérique ** Lecture forcée de Katakana ** Effectue le traitement de conversion japonais (Parce que le nom du package n'est pas un simple mot anglais C'est un processus assez difficile)
Enfin, en utilisant la ** "Beautiful Word List" ** que j'ai faite à l'avance Recherchez les noms de packages qui ont été traduits en japonais.
Grâce à ces efforts constants ~~ Omoshiroi ~~ Un paquet avec un beau nom ** J'ai pu en trouver beaucoup! ** **
Avant le code, je présenterai le résultat plus tôt. J'ai trouvé beaucoup de choses, mais j'en ai choisi 18. Si l'article de référence est l'édition Heisei, 18 sélections de la version japonaise, abrégée en "** R18 **".
Veuillez apprécier le beau sens de nommage de ** Paison ** avec des exemples de phrases.
31,001 DL l'année dernière Un outil pour déterminer si un nom est féminin ou masculin.
Enseignons fort aux nouveaux programmeurs en avril. ** Exemple: si vous ne comprenez pas, demandez à [sex machine]! ** **
163 DL l'année dernière Formulaire formel et bibliothèque de widgets utilitaires.
Crions au travail en avril. ** Exemple: j'avais l'habitude de jouer avec [methanal] tout le temps pendant les vacances **
64492 DL l'année dernière Un outil pour corriger les erreurs de commande de la console. https://github.com/nvbn/thefuck
Lorsqu'une erreur se produit, dites simplement "Fat !!" Il semble qu'il soit populaire car il répond automatiquement à ceux qui font une voix surprise.
Lisons-le en avril. ** Exemple: [la baise] [la baise] [la baise]! !! ** **
427 DL l'année dernière Un package Python qui envoie facilement des données à Microsoft Azure SQL DB. https://github.com/dacker-team/pyzure
Bien que le pyzuri original ait disparu, il a découvert un nouveau talent.
Parlons à tout le monde en avril. ** Exemple: je suis content d'avoir essayé [pyzure] hier soir **
78 DL l'année dernière C'est un outil cli pour ** insérer ** des données dans AskOmics distant.
Nous vous rappelons gentiment en avril. ** Exemple: lors de l'insertion, d'abord [askocli] **
71 DL l'année dernière Windows / Linux, qui vous permet d'envoyer et de recevoir des messages complets Emballage de socket compatible Python 2 et 3.
Confions-nous secrètement en avril ** Exemple: j'utilise en fait [bas] **
34 DL l'année dernière Les détails sont inconnus. Cela peut être gênant en raison du manque de documentation.
Parlons en avril ** Exemple: je suis accro à [osex] et j'ai des problèmes **
488 DL, 109 DL l'année dernière
Puisqu'il existe un grand nombre de systèmes Pai Pai, le montant total ne peut pas être indiqué. Je suis sûr qu'il existe de nombreux packages faciles à utiliser.
Faisons l'éloge en avril ** Exemple: [mypypi] est le meilleur! ** **
570 DL, 1114 DL l'année dernière
Déclarons à haute voix en avril ** Exemple: j'ai toujours [pypandas] **
535 DL, 40 DL l'année dernière
Présentons-le à un collègue en avril ** Exemple: je vais vous montrer mon [pantalon fantaisie]! ** **
512 DL l'année dernière Cadre d'automatisation à usage général pour les tests d'acceptation et l'automatisation des processus robotiques (RPA) = Il semble que le "cadre du robot" ait la forme d'un tanuki bleu?
N'ayez pas peur d'oublier vos devoirs en avril ** Exemple: si vous rencontrez un problème, je vais demander au [framework doraemon-robot] **
49 DL l'année dernière Framework d'application Web qui utilise le cœur de Pyramid? Il semble que.
Essayons-le en avril ** Exemple: j'ai mis [baka] dans mon ordinateur **
52 DL l'année dernière
Tweetons en quelque sorte en avril ** Exemple: [hn comments]. Fufufu **
52 DL, 25 DL l'année dernière
Parlons des attentes futures en avril ** Exemple: Commençons [sexy time] à partir de maintenant! ** **
C'était le plus difficile de passer de l'anglais au katakana, A l'époque de l'anglais, il y avait déjà de nombreux ** mots puissants **.
Par tous les moyens en avril, au travail ou à l'école Lisons-le à haute voix. ** Je suis sûr que les gens autour de moi ressentiront l'arrivée du printemps **.
Ce qui suit sont des détails techniques, donc je pense que beaucoup de gens n'ont pas à les regarder. ~~ Veuillez vous référer à ceux qui sont intéressés.
** Présentation de ** packages magnifiquement nommés ** sérieusement ** Et cet article ** qui explique le ** code d'acquisition ** ** Je ne crains pas d'être "censuré / supprimé" **.
Cependant, quand ** un adulte au cœur sale ** voit, Vous pouvez le recevoir dans un sens différent de l'intention initiale **.
** Cet article traite de diverses circonstances ** ** Veuillez noter qu'il peut disparaître de manière inattendue. ** ** Veuillez l'essayer par tous les moyens avant qu'il ne disparaisse.
Dans PyPI (paipai) où le package pip est enregistré, Un ensemble de données de cette statistique Il est publié sur ** Google / BigQuery **. Un outil qui peut facilement obtenir ces informations ** pypinfo **.
Pour travailler avec BigQuery Suivez les étapes sur le site ci-dessous https://github.com/ofek/pypinfo Compte Google Cloud Platform (GCP) et Vous devez créer les informations d'identification (fichier JSON).
Après avoir créé le fichier JSON, utilisez le navigateur Colaboratory(https://colab.research.google.com/?hl=ja) Commençons et exécutons la commande comme suit.
Montez Google Drive.
from google.colab import drive
drive.mount('/content/drive')
Créez ce dossier de travail.
!mkdir "drive/My Drive/PYPI"
#Importons le fichier JSON pour l'authentification créé précédemment ici.
Installez pypinfo.
pip install pypinfo
Spécifiez le chemin du fichier JSON pour l'authentification afin d'obtenir les informations d'authentification.
!pypinfo --auth "/content/drive/My Drive/PYPI/YourGCPProjectName-XXXXXXXXX.json"
Confirmation de communication de pypinfo (Vous pouvez obtenir le nombre de téléchargements de "request" comme ceci)
!pypinfo requests
#Served from cache: False
#Data processed: 67.70 GiB
#Data billed: 67.70 GiB
#Estimated cost: $0.34
#
#| download_count |
#| -------------- |
#| 61,319,474 |
De plus, par pays, par version, par OS de destination d'installation, etc. Vous pouvez obtenir diverses informations, alors essayons-les selon l'exemple sur le site officiel.
Comme vous pouvez le voir dans "Coût estimé: 0,34 USD" ci-dessus Dans BigQuery, chaque fois que vous lancez une requête Il est important de noter que vous serez facturé en fonction de la quantité de données lues. Cependant, avec la trame Always Free de 1 To / mois, Parce qu'il existe un niveau gratuit de 300 $ / an pour les nouveaux utilisateurs de GCP Une utilisation normale devrait être correcte. Veillez à ne pas lancer uniquement des requêtes lourdes pour une acquisition totale.
Maintenant, jetons enfin une requête pour cette acquisition de données.
Soumettez une requête pour l'année dernière et enregistrez les résultats dans un fichier.
!pypinfo --days 365 --limit 250000 "" project > "drive/My Drive/PYPI/PYPINFO_365_LIST.txt"
#Served from cache: False
#Data processed: 636.49 GiB
#Data billed: 636.49 GiB
#Estimated cost: $3.11
#| project | download_count |
#| --------------------------------------------------------------------------------- | -------------- |
#| urllib3 | 950,108,414 |
#| six | 788,263,157 |
#| botocore | 693,156,212 |
#| requests | 656,942,399 |
#~~ Ce qui suit est omis ~~
Pour ton information, Le nombre total de téléchargements au cours de la dernière année est Environ 37,498,000,000 fois Il y avait environ 215 000 types de colis.
Le nombre total de colis étant d'environ 220 000, En regardant le niveau de l'année dernière, ce qui est enregistré La plupart seront «vivants». Parce qu'il n'y a pas de Pychinko qui aurait existé avant Il peut être régulièrement inventorié. En outre, au cours des 30 derniers jours, il y avait environ 134 000 types, donc Y a-t-il moins de 100 000 types qui sont utilisés assez décemment?
Le nom du package et le fichier de décompte des téléchargements que vous avez obtenus précédemment sont Il est facile à voir et pratique à parcourir à portée de main, Pour le gérer par programme, vous devez l'analyser et le traiter.
Faites attention à la suppression de la ligne de coût de la requête d'ouverture, de la ligne d'en-tête / ligne totale du tableau, etc. Procédez comme suit pour le mettre au format LIST.
Lisez le fichier résultat pendant le traitement et créez-en une LISTE
f = open('/content/drive/My Drive/PYPI/PYPINFO_365_LIST.txt')
line = f.readline() #Lire ligne par ligne(Comprend: caractère de saut de ligne)
pypinfo_list = []
while line:
#Lorsqu'il y a trois seuils = cap, frame et Total sont bloqués, mais à part ça, on peut le distinguer par cette condition
if line.count('|') != 3:
line = f.readline()
continue
else:
#Supprimer le code de saut de ligne, les virgules et les espaces demi-largeur
parsed_line = line.replace('\n', '').replace(' ', '').replace(',', '')
one_data = parsed_line.split('|')
#['', 'urllib3', '950108414', '']Utilisez les deux du milieu en forme de
#Remarques: les valeurs numériques sont actuellement traitées comme des chaînes de caractères
one_data = one_data[1:3]
pypinfo_list.append(one_data)
line = f.readline()
f.close
#Supprimer les deux premières lignes de titre et la dernière ligne de total
pypinfo_list = pypinfo_list[2:-1]
Je me demande si pypinfo le fournit, mais Je l'ai fait moi-même. Si c'est le cas, Cela coûte environ 3 $ à chaque fois, donc plutôt que de le jeter séparément de la version texte Cela enregistrera également le nombre de soumissions de requêtes. Je pense que ces ① et ② sont également utiles pour effectuer une «analyse de données» liée à Python.
Eh bien, j'ai pu lister les noms des packages, Par exemple, urllib ⇒ URlib python-dateutil ⇒ Python-Date Util Pour rendre le nom du paquet katakana comme Que faire?
La politique comprend les 4 étapes suivantes.
Les premiers "mots anglais à Katakana" sont les suivants J'ai utilisé la table de conversion de ** alkana.py **. https://github.com/cod-sushi/alkana.py/blob/master/README_ja.md
Pour 2-4, principalement à partir de la table de règles des caractères romains J'ai créé une table de conversion avec environ 330 lignes. Ajoutez-le aux données de alkana.py mentionnées ci-dessus, Créez une table de conversion sous la forme alkana_list.
Le but ici est d'utiliser la longueur de la chaîne de caractères anglais comme clé. Triez alkana_list par ordre décroissant.
x[0]Entrez la longueur de la chaîne de caractères à l'avance dans l'élément de
alkana_list = sorted(alkana_list, key=lambda x: x[0], reverse=True)
#Pour les éléments hautement prioritaires tels que py ⇒ pie et python ⇒ python
# [30, 'py', 'tarte']Si vous vous inscrivez avec une longue durée, la priorité augmentera.
La conversion sera maintenant appliquée dans l'ordre du mot le plus long. La conversion réelle est la suivante. En raison du montant, cela prend environ 50 minutes à la fois. Vous pouvez utiliser tqdm pour afficher la progression sur le chemin comme indiqué ci-dessous. Il sera plus facile à utiliser si vous l'enregistrez avec cornichon après le traitement.
Ajouter des informations de lecture Katanaka à tous les modules
from tqdm import tqdm
pypinfo_jp_list = []
for pypinfo in tqdm(pypinfo_list):
#Variable de stockage du nom du module japonais (l'anglais est stocké à ce stade)
jp_module_name = pypinfo[0]
for data in alkana_list:
#Convertissez la table de conversion dans l'ordre.
jp_module_name = jp_module_name.replace(data[1], data[2])
pypinfo_jp_list.append([pypinfo[0], jp_module_name, int(pypinfo[1])])
print(len(pypinfo_jp_list))
print(pypinfo_jp_list[0:10])
import pickle
with open('/content/drive/My Drive/PYPI/pypinfo_jp_list.pickle', 'wb') as f:
pickle.dump(pypinfo_jp_list, f)
En tant qu'outil spécial de traitement du langage naturel Il peut y avoir quelques utilisations.
Enfin, recherchez les packages contenant des mots clés spécifiques. Enregistrez ** vos mots préférés ** dans "Beautiful_tango_list" à l'avance, Il fait juste des boucles. Si vous incluez de nombreux termes utilisés tels que "pai", Gardez à l'esprit que les résultats seront énormes. Cette fois, un certain "site qui répertorie les mots élégants" J'ai emprunté le mot.
Je pense que la sortie d'impression est jusqu'à 5000 lignes dans Colaboratory, donc Si vous parcourez environ 10 000 lignes, il est préférable de générer une sortie dans un fichier comme indiqué ci-dessous.
Beautiful_tango_Rechercher le contenu de la liste et l'écrire dans le texte
result_str = ""
for word in Beautiful_tango_list:
result_str += "■"+" "+ word + "\n"
for data in pypinfo_jp_list:
if word in data[1]:
result_str += str(data) + "\n"
result_str += "\n"
with open('/content/drive/My Drive/PYPI/Beautiful_Result.txt', 'w') as f:
print(result_str, file=f)
** Merci pour votre soutien. ** ** Utiliser pleinement ces technologies et ces codes, comme les résultats ci-dessus, J'ai pu trouver de nombreux paquets avec de beaux noms.
** Le sens de la dénomination de Python ** est profond. Tout comme regarder le mot suivant lorsque vous recherchez le dictionnaire Même juste par rencontre accidentelle avec le nom Ce serait formidable si vous pouviez rencontrer votre forfait préféré.
** Rencontre fatidique apportée par PyPI **, On peut dire ça. La raison de mon intérêt pour la technologie était «j'étais curieux de connaître le nom». Mais n'est-ce pas bon?
Puisqu'il s'agit d'un article qui présente le paquet très au sérieux, C'est comme rappeler une signification différente de l'intention originale ** Ne jetez pas de pierres si vous êtes un adulte au cœur sale. ** ** Sincères salutations.
** Venez tout le monde ** ** Pai ○ n et Pai Pa ○ sont ** ** As-tu aimé? ** **
Aux lecteurs avisés qui ont lu jusqu'ici, ** Les mots en ○ sont clairs **.
Si quelqu'un comprend mal ou se plaint de cet article, Ce doit être ** ceux qui pensent toujours à de telles choses **.
Tout cela vient du terrain.
Recommended Posts