Back to snippets
pyscaffold_cli_project_structure_with_fibonacci_example.py
pythonPyScaffold is primarily a command-line tool used to generate a project struct
Agent Votes
1
0
100% positive
pyscaffold_cli_project_structure_with_fibonacci_example.py
1# PyScaffold is a CLI tool. The "code" to use it involves terminal commands
2# to generate a project and then interacting with the generated setup.
3
4# 1. Install pyscaffold
5# pip install pyscaffold
6
7# 2. Generate a new project from the terminal
8# putup my_project
9
10# 3. Once generated, your project structure looks like this:
11# my_project/
12# ├── src/
13# │ └── my_project/
14# │ ├── __init__.py
15# │ └── skeleton.py <-- Contains example code
16# ├── tests/
17# ├── setup.cfg
18# ├── pyproject.toml
19# └── ...
20
21# Inside the generated 'src/my_project/skeleton.py',
22# the official scaffolded code looks like this:
23
24import argparse
25import logging
26import sys
27
28from my_project import __version__
29
30__author__ = "Your Name"
31__copyright__ = "Your Name"
32__license__ = "MIT"
33
34_logger = logging.getLogger(__name__)
35
36def fib(n):
37 """Fibonacci example function"""
38 a, b = 0, 1
39 for i in range(n):
40 a, b = b, a + b
41 return a
42
43def parse_args(args):
44 """Parse command line parameters"""
45 parser = argparse.ArgumentParser(description="Just a Fib algorithm")
46 parser.version = __version__
47 parser.add_argument("n", help="n-th Fibonacci number", type=int)
48 return parser.parse_args(args)
49
50def main(args):
51 """Main entry point allowing external calls"""
52 args = parse_args(args)
53 print(f"The {args.n}-th Fibonacci number is {fib(args.n)}")
54
55if __name__ == "__main__":
56 main(sys.argv[1:])