Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reorx/project_sketch
A nerd's boilerplate for your Python project.
https://github.com/reorx/project_sketch
boilerplate project python template
Last synced: 3 months ago
JSON representation
A nerd's boilerplate for your Python project.
- Host: GitHub
- URL: https://github.com/reorx/project_sketch
- Owner: reorx
- License: mit
- Created: 2015-03-26T13:35:22.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2020-10-15T13:04:06.000Z (over 4 years ago)
- Last Synced: 2024-11-01T10:35:08.823Z (3 months ago)
- Topics: boilerplate, project, python, template
- Language: Python
- Homepage:
- Size: 14.6 KB
- Stars: 18
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# project_sketch
A nerd's boilerplate for your Python project.
## Usage
```bash
$ cp -r project_sketch
$ cd
$ mv project_sketch
```And change every `project_sketch` word into ``.
## Hierarchy
```
project_sketch
├── project_sketch
│ ├── _module
│ │ └── __init__.py
│ └── __init__.py
├── .gitignore
├── setup.py
├── Makefile
├── manage.py
├── requirements.txt
├── dev-requirements.txt
└── README.md
```## Explanation
- **project_sketch/**
The Python package of this project, mostly has the same name with root folder
- **project_sketch/__init__.py**
Essential file to claim a package, contains `__version__` variable.
- **project_sketch/_module/**
A submodule of the project, there's also a necessary `__init__.py` under it.
you can `cp _module whatever-you-like` to create a new submodule.
- **.gitignore**
Simple, effective gitignore, much less verbose than
[this windbag](https://github.com/github/gitignore/blob/master/Python.gitignore)- **setup.py**
You may hate it, but you can't ignore it. This `setup.py` does just what you want,
and it automatically involves `requirements.txt` and `README.md`.If you rock, go and dig [this](https://pinboard.in/u:reorx/t:python/t:packaging).
- **Makefile**
We love Makefile, not Rakefile nor Gruntfile nor whatever requires extra program.
This awesome Makefile contains three commands at your service:* `make build`
Build Python package with `setup.py`.
* `make clean`
Clean files & folders generated by `build`.
* `make test`
Run tests (if you have any) with nose.
- **manage.py**
Try `pip install click` & `./manage.py ping` to see how it works.
If you are writing something that needs to run in a complicated way,
and you realize that this sort of code should not be put in the package,
this is what you need. `manage.py` is an entrance script which you can customize
your own command in it. By default, it uses [click](http://click.pocoo.org/3/)
to define commands & options, you can replace it by other things like
[docopt](http://docopt.org/), or [fabric](http://www.fabfile.org/)
(the file should be named `fabfile.py` then), if you prefer.If you are writing a pure import-only package, feel free to remove it.
- **requirements.txt**
Includes a `click` by default, this file contains packages your project depends on.
- **dev-requirements.txt**
Includes a `nose` by default, this file contains packages you need in developing environment,
which are not necessary in production.- **README.md**
A cute, well formatted `README.md` makes people happy.
(True heros love `README.rst` :).## Questions and Answers
Q: Why there's no `MANIFEST.in` file in the directory?
Q: Why there's no `setup.cfg` file in the directory?
Q: How to build and publish a distribution?
Q: Should I use wheel as my distribution format?
> Could be answered from http://python-packaging-user-guide.readthedocs.org/en/latest/distributing/