2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00
2024-09-11 11:14:03 -04:00

philosophy

classes

  • compositional
  • only init manipulates the object
  • no inheretance
  • functions return a clone of the object with primary data object cloned and manipulated

other

  • heavy inference from type hints
  • library-ize everything
  • thin CLI wrapper as stand alone file
  • pyproject setup only
  • deveopment branch with pyenv to source into shell for development
  • data oriented with classes being simplest data conainers with helper functions

imports

Files with an prefix underscore are, by convention, imported in __init__.py. For example,

from ._rgb_ import *

This will import all of the functions from _rgb_ into the modules name space. So If _rgb_ contains a function interpolatePoint you can reference it by PythonModuleDemo._rgb_.interpolatePoint or more simply PythonModuleDemo.interpolatePoint. Since this module is intended to provide a swath of functionality I wanted to provide the user with the simplest method of access.

The reason all files end with a suffix underscore is to avoid any name collisions with python standard Library. For instance I have a file called _math_.py. If it were only called math.py it would collide with python standard Library when doing import math.

import time

λ timeRepeat.py - -c 500 -- python -c ''
0.021840
λ timeRepeat.py - -c 500 -- python -c 'import defl'
0.161801
λ python -c 'print(0.161801/0.021840)'
7.4084706959706965
Description
No description provided
Readme 664 KiB
Languages
Python 99.2%
Shell 0.8%