Skip to main content

Strongly opinionated python project management.

Project description

edgy.project

Strongly opinionated python project management.

Continuous Integration Status Coverage Status Documentation Status

This package helps you create python source trees using best practices (or at least the practices we consider as best for us) in a breeze.

Don’t worry about setting up git, a makefile, usual project targets, unit tests framework, pip, wheels, virtualenv, code coverage, namespace packages, setup.py files … Project’s got you covered on all this, using one simple and fast command.

Install

Before installing the package, you must make sure that pip and virtualenv are installed and available to be used in your current environment.

pip install edgy.project

Now, you may want to bootstrap a python package source tree.

mkdir my.awesome.pkg
cd my.awesome.pkg
edgy-project init

You’re done with the bootstrap. You can now run:

make install
make test
git commit -m 'Damn that was fast ...'

Happy?

Update

If you change the Projectfile content, or update the library, you will need to run the generator again.

edgy-project update

To better control what changes are made, I suggest that you run it on a clean git repository, then look at the dofferences using:

git diff --cached

You can then commit the generated changes.

Gotchas

As the headline says, we have made strong opinionated choices about how a project tree should be organized.

For example, we choose to use make to provide the main project entrypoints (install, test). We also choose to use git. And nosetests. And to put root package in the project root. Etc.

For beginners, that’s a good thing, because they won’t have to ask themselves questions like “What should I put in setup.py ?” or “Should I create a «src» dir or not ?”. For more advanced users, it can be either a good thing if you agree with our choices, or a bad one …

F.A.Q

  • I’m using PasteScript, isn’t that enough?

    • PasteScript with the basic_package template will only generate a very minimalistic tree, while we install a few tools and generate more boilerplate than it does. The fact is, we were using it before but still had a lot of repeated actions to do then, and the exact aim of this project is to automate the whole. Also, PasteScript cannot update a project once generated, while we do.

  • Should I use it?

    • You’re a grown man, right?

  • Is it stable / production ready?

    • Not really relevant to this project, as it’s more a development tool than something you’ll use in operations. However, please note that on some points and until version 1.0, we will tune things and change the way it works to find the most flexible way to operate. Thus, if you relly on a specific implementation, updates may break things. The good news is that you’ll be able to review changes using git diff –cached, and either rollback or report issues saying how much you’re disappointed (and why, don’t forget the why, please).

  • Can I contribute?

    • Yes, but the right vs wrong choices decision is up to us. Probably a good idea to discuss about it (in an issue for example) first.

  • Can you include feature «foo»?

    • Probably, or maybe not. Come on github issues to discuss it, if we agree on the fact this feature is good for a lot of usages, your patch will be welcome. Also, we’re working on a simple way to write “feature plugins”, so even if we don’t agree on something, you’ll be able to code and even distribute addons that make things work the way you like.

  • Do you support python 3?

    • Yes, edgy.project run both with python 2.7+ and python 3.4+, but we don’t generate version specific code. For example, we don’t support generating namespace packages that does not have __init__.py files with the python namespace package boilerplate.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

edgy.project-0.1.18.tar.gz (14.6 kB view details)

Uploaded Source

edgy.project-0.1.18.macosx-10.11-x86_64.tar.gz (28.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

edgy.project-0.1.18-py3.5.egg (47.2 kB view details)

Uploaded Egg

edgy.project-0.1.18-py2.py3-none-any.whl (26.5 kB view details)

Uploaded Python 2Python 3

edgy.project-0.1.18-py2.7.egg (46.1 kB view details)

Uploaded Egg

File details

Details for the file edgy.project-0.1.18.tar.gz.

File metadata

  • Download URL: edgy.project-0.1.18.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for edgy.project-0.1.18.tar.gz
Algorithm Hash digest
SHA256 e72baf88b857ed64412dfa1e66263952f79fddbceb0f7bb4ac8ac8bea8476487
MD5 1384548e45e559e43b6f90f87826bc8e
BLAKE2b-256 5f33d990db32df9d946cf0eee385b361b67d7e0495fc59d85a8f7e8a93b2ea30

See more details on using hashes here.

File details

Details for the file edgy.project-0.1.18.macosx-10.11-x86_64.tar.gz.

File metadata

File hashes

Hashes for edgy.project-0.1.18.macosx-10.11-x86_64.tar.gz
Algorithm Hash digest
SHA256 1f8c15d74900d53bc7dda19cce9fa5c1668ffcc6709421a661fa8079fa08ce8d
MD5 e44a34914ba18070e252b2d4e2d3418d
BLAKE2b-256 2a7aa13395009e35a530e25b5a5c03d1fc93a1a818c7a9eab15675e6484dcc32

See more details on using hashes here.

File details

Details for the file edgy.project-0.1.18-py3.5.egg.

File metadata

File hashes

Hashes for edgy.project-0.1.18-py3.5.egg
Algorithm Hash digest
SHA256 62ab2b00b4d4bacdce871c4668881bcde06993ce0d04ec6c1e818b8ef5da1034
MD5 9a9b212ef68b2dab26fdd7830cc84623
BLAKE2b-256 5f74d1542b279d495ba1ed56aee42f8ad1970f4d7c24776f1bf7ec9c6a90596e

See more details on using hashes here.

File details

Details for the file edgy.project-0.1.18-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for edgy.project-0.1.18-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 640f51ab60cc9442a5b548a73bb88258e8ed6c9a0598b0cc6338b258cfa95480
MD5 7ede2dc03facf8420097234771c4cf57
BLAKE2b-256 f9b7cad6f3b6f16d0d982b9860b70cbdf3a685796ae1cbfe6340f34acb526e77

See more details on using hashes here.

File details

Details for the file edgy.project-0.1.18-py2.7.egg.

File metadata

File hashes

Hashes for edgy.project-0.1.18-py2.7.egg
Algorithm Hash digest
SHA256 05117ce6d41a7ee57398d4142beec05d4a5905c82889dde15b61970b8937de14
MD5 0bcf4d08e57596761354fb290393d9ea
BLAKE2b-256 2dffd2fd9df0ab48a13de60e3a3e3462cc2b1ba2f0a08419c550d80c7601e081

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page