pykage

a marqué ce sujet comme résolu.

bonjour, j’ai créer (plutôt j’ai essayer de créer ) un package manager pour python , il ne marche pas encore (il y a encore quelque bug important) on peut dire que c’est une version sous aplha , mais j’ai la flemme de faire des petites choses mais comment même très important genre mettre a jour mon readme.md car mon nom a change (anciennement pykg(py + (p)kg) qui étais déjà pris) ou renommer certains dossier . je l’ai mie sur pypi mais je me suis aperçus que même la version qui est en ligne ne marchais pas , je sais c’est une catastrophe mais pouvez regardez mon projet et me proposer des ameliorations, pour l’instant il y a que les methodes install, add, run, init mon repo github : https://github.com/pykage/pykage.git ATTENTION SI VOUS VOULEZ L’INSTALLEZ (j’en doute :( ) me le parlez par ce sujet , je le teste sur windows et il ne semple pas marcher sur le mien par contre sur mac et linux oui , installe poetry aussi desole pour mon projet plein de bug

Salut,

Le dépôt a l’air bien organisé en tout cas (attention cependant, il y a quelques fichiers non souhaités comme les fichiers .DS_Store), c’est plutôt clair et bien découpé.

Par rapport à ton projet, c’est quelque chose que tu envisages comme une alternative à pip ?

J’ai l’habitude quand je relis du code de commencer par les tests, ça permet d’avoir un bon aperçu de ce que ça fait et comment ça fonctionne. Bon là ils vont très vite à lire on va dire. :D

Sinon une petite remarque comme ça, je vois que tu utilises plusieurs opérations comme os.path ou os.getcwd : sache que Python embarque un module pathlib qui est très utile pour gérer des chemins de fichiers (je vois d’ailleurs que tu l’utilises à certains endroits).
Par ailleurs les sys.path.append('..') sont souvent des nids à ennuis, tu n’en as normalement pas besoin si ton projet est correctement packagé (en plus tu le fais à plusieurs endroits, donc tu dois avoir beaucoup de .. dans ton PYTHONPATH à la fin).

Aussi tu n’as pas besoin de convertir les valeurs en booléens dans une condition if (j’ai vu un if bool(self.path_pkg) ou if bool(document.text)), c’est déjà fait implicitement par le if !

Pour ta classe bcolors tu pourrais utiliser une Enum, c’est pile le cas d’usage pour.

Dans ton code j’ai vu un all([bar for foo in ...]), il faut savoir qu tu n’as pas besoin d’une liste ici : all accepte n’importe quel itérable et tu peux donc lui passer une expression génératrice (all(bar for foo in ...) sans crochets), mais encore une fois tu dois le savoir parce que tu utilises ce pattern à d’autres endroits.

(attention cependant, il y a quelques fichiers non souhaités comme les fichiers .DS_Store), c’est plutôt clair et bien découpé.

entwanne

ah oui , j’ai encore oublie de supprimer les petits fichiers (genre .idea(ah non je l’ai corrige), .ds-store etc) :honte:

Par rapport à ton projet, c’est quelque chose que tu envisages comme une alternative à pip ?

oui mais ca utilise pip malheureusement pour installer les packages(j’avais pas envie de creer mon propre installer , un debut je voulais le faire mais je m’aperçois que les packages c en python sont très durs a installer , comme pandas ou numpy mais j’ai abandonne , pfff les whl , et les egg)

J’ai l’habitude quand je relis du code de commencer par les tests, ça permet d’avoir un bon aperçu de ce que ça fait et comment ça fonctionne. Bon là ils vont très vite à lire on va dire. :D

ah oui , mais c’est un peu dur de tester un print ou une sortie ;) , oui j’aurais pu :honte:

Sinon une petite remarque comme ça, je vois que tu utilises plusieurs opérations comme os.path ou os.getcwd : sache que Python embarque un module pathlib qui est très utile pour gérer des chemins de fichiers

je le sais mais j’oublie tout le temps je vais corriger cela

Par ailleurs les sys.path.append(’..’) sont souvent des nids à ennuis, tu n’en as normalement pas besoin si ton projet est correctement packagé

je n’en ai plus besoin , j’en ai deja supprimer un gros bout mais il en reste

Aussi tu n’as pas besoin de convertir les valeurs en booléens dans une condition if (j’ai vu un if bool(self.path_pkg) ou if bool(document.text)), c’est déjà fait implicitement par le if !

ah oui , encore une erreur de ma part , je vais corriger cela

Pour ta classe bcolors tu pourrais utiliser une Enum, c’est pile le cas d’usage pour.

Bonne idee !

Dans ton code j’ai vu un all([bar for foo in …]), il faut savoir qu tu n’as pas besoin d’une liste ici : all accepte n’importe quel itérable et tu peux donc lui passer une expression génératrice (all(bar for foo in …) sans crochets), mais encore une fois tu dois le savoir parce que tu utilises ce pattern à d’autres endroits

ah oui je ne sais pas, parfois j’ai la tête en l’air et j’oublie qu’il y a une façon plus facil a écrire ! et bah merci beaucoup pour le temps que tu as regarde mon code :lol:

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte