Skip to content

Commit

Permalink
优化一下
Browse files Browse the repository at this point in the history
允许替换 repo 中的 "-" 后用作主包名

update generate __init__.py
  • Loading branch information
lemisky committed Feb 8, 2023
1 parent 3d8f73d commit 6369a9d
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 20 deletions.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@ python package generator
```sh
pip install pger
pger foyoux/pger
pger foyoux --repo pger
# 默认 repo 当做主包名 -> src/<repo>/__init__.py,但 repo 允许包含 "-",但包名不可以
# 使用 -p/--package 手动指定主包名
pger -p wilk foyoux/foyou-wilk
pger foyoux -r pger
pger foyoux --repo foyou-wilk
# 默认 repo 当做主包名,替换 "-" 为 "_" -> src/<repo>/__init__.py,但 repo 允许以非字母开头,但包名不可以
# 此时可指定 -p/--package 选项手动指定主包名
pger -p ticket foyoux/12306

```

## github config
Expand Down
13 changes: 8 additions & 5 deletions src/pger/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def main():
parser.add_argument('-v', '--version', action='version', version=epilog)

parser.add_argument('user', help='github username')
parser.add_argument('--repo', help='github repository')
parser.add_argument('-r', '--repo', help='github repository')
parser.add_argument('-p', '--package', help='python package name -> src/<package>/__init__.py')

args = parser.parse_args()
Expand All @@ -29,11 +29,14 @@ def main():

package = args.package
if package is None:
if '-' in repo:
print(f'package not specify and repo contains "-"')
if not repo[0].isalpha():
print(f"package not specify and repo can\'t convert to package name, "
f"\nbecause repo doesn't start with the alpha")
return
else:
package = repo
package = repo.replace('-', '_')

pkg = PyPI(user, repo, package)
pkg.generate()
output = pkg.generate()

print(f'🎉 Generate github repository ready at {output.absolute()}')
29 changes: 18 additions & 11 deletions src/pger/pypi.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@ def __init__(self, user, repo, package):
self.user = user
self.repo = repo
self.package = package
self.dest = Path(repo)
self.dest.mkdir(parents=True, exist_ok=True)
self.src = self.dest / 'src'
self.output = Path(repo)
self.output.mkdir(parents=True, exist_ok=True)
self.src = self.output / 'src'
(self.src / 'templates').mkdir(parents=True, exist_ok=True)
self.workflows = self.dest / '.github/workflows'
self.workflows = self.output / '.github/workflows'
self.workflows.mkdir(parents=True, exist_ok=True)
self.pkg = self.src / package
self.pkg.mkdir(parents=True, exist_ok=True)

def manifest(self):
(self.dest / const.MANIFEST).write_text(
(self.output / const.MANIFEST).write_text(
(const.templates / const.MANIFEST).read_text().format(**self.__dict__)
)

def pyproject(self):
(self.dest / const.PYPROJECT).write_text(
(self.output / const.PYPROJECT).write_text(
(const.templates / const.PYPROJECT).read_text().format(**self.__dict__)
)

Expand All @@ -35,12 +35,12 @@ def publish(self):
)

def readme(self):
(self.dest / const.README).write_text(
(self.output / const.README).write_text(
(const.templates / const.README).read_text().format(**self.__dict__)
)

def requirements(self):
(self.dest / const.REQUIREMENTS).write_text('')
(self.output / const.REQUIREMENTS).write_text('')

def started(self):
(self.workflows / const.STARTED).write_text(
Expand All @@ -65,10 +65,16 @@ def init(self):
__title__ = '{self.repo}'
__author__ = '{self.user}'
__version__ = '0.0.1'
import argparse
def main():
print(f'hello from {{__title__}}({{__version__}})')
epilog = f'%(prog)s({{__version__}}) by {self.user}(https://github.com/{self.user}/{self.repo})'
parser = argparse.ArgumentParser(prog='{self.repo}', description='', epilog=epilog)
parser.add_argument('-v', '--version', action='version', version=epilog)
parser.parse_args()
""").lstrip())

def generate(self):
Expand All @@ -81,3 +87,4 @@ def generate(self):
self.update()
self.main()
self.init()
return self.output

0 comments on commit 6369a9d

Please sign in to comment.