Skip to main content

this is a description

Project description

intro

suppose you want to make a comand line tool called icrop. it accept integer as numbers ouput carrots we need to feed

ex:
	cmd> icrop 2 
	ouput: 4

we can get the output by two ways:

  • command line

      icrop  2
    
  • call python moudle

    python -m icrop 2
    

best practice schema

env

Generated by make env

This is first step you need to do in any python project

  • it will create a virtual env
  • auto source it
  • install requirements for the start up

test

run make test

run

make run will run in module mode make main will run in normal mode

You can see that main.py and icrop/__main__.py are the same content file.

why do we need main.py ? It is eay to make an entry in IDE , like intellij.

Could I just use __main__.py to run like this?

python icrop/__main__.py

You cound not.

That is because the top-level package problem.

Ex:

python main.py 
top-level package is the same as main.py

python src/func/main.py  
top-level package is the same as main.py, aka func 
top-level package is the folder where you run this command from

So , why icrop/__main__.py does not work?

because top-level package is icrop now.

logging

Always use logging for log print,dont useprintlogging config is controlled bylogging.yml, which can control every module level callsetup_logging` in main file (ra)

make module

update readmeput moudle in the folder parallel with logx folder.

  • logx
  • your_module

packing module or cmd

local

for quick test purpose

  • install: pip install .
  • uninstall: pip uninstall <module_name>

make install make uninstall

upload to test or prod PYPI server

upload to test server:

make upload-to-test 

upload to prod server:

make upload-to-prod

test and coverage

pure test

make test

test with coverage

make coverage

Project details


Release history Release notifications

Download files

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

Files for icrop, version 0.0.1
Filename, size File type Python version Upload date Hashes
Filename, size icrop-0.0.1-py2.py3-none-any.whl (5.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page