JMK Engineering Python Library
Find a file
2025-12-28 23:15:27 -04:00
docs Started the doumentation source 2025-01-01 14:11:06 -04:00
jepl Updated conductor_size and conductor_ampacity, ready for merge 2025-12-28 23:15:27 -04:00
.gitignore Started the doumentation source 2025-01-01 14:11:06 -04:00
example_notebook.ipynb start of removing database requirement 2025-11-27 16:18:26 -04:00
LICENSE Initial commit 2023-10-10 20:57:03 +00:00
README.md more little changes 2025-07-31 10:16:47 -03:00

JMK Engineering Python Library

or JEPL for short.

I don't know if this should be called a library or a set of modules. What it is, is a set of functions that replace calculations that I do on a weekly basis.

The library is broken into sections, with more being added later, including circuits and pv.

Some of these libraries rely on publicly accessible information, including manufacturer data sheets. The libraries that rely on copyrighted information you need to make sure that you have a copy of the standard, code, etc before initializing the software.

Use the example python notebook to get started.

What we're missing

Tests, I haven't written any real tests for this set of libraries, yet. That will be coming soon, probably the next time that we have a slow time.

Getting Started

To use this set of tools you will need some rudimentary understanding of python.

I suggest that you install:

  • Python 3 (any version) link
  • PIP (To manage modules) link
  • VSCodium link

There are some python modules that are used heavily that you will need to, they all can be installed with pip. Some may come pre-installed with the version of python that you install.

  • sys
  • pandas
  • numpy
  • sqlite3
  • jinja2
  • tomllib

There are also a few VSCodium extensions that will be needed.

  • Jupyter

Optional:

My preferred way to manage this tool for multiple projects is using git. I will typically clone the entire repo and then work from there.

Limitations

Currently the tools use the CEC, in most cases this will match the NEC, but something we are working on is updating that so we can select from which code version should be used for the calculation.

Another limitation is the use of SQL databases. This limits its functionality as a module, but my ability with pandas dataframe lookups is very weak. If anyone wants to make the changes and submit a pull request, we can develop that method on a different branch and test it to the main in the near future.

Future Features

There are a lot of different features that I am planning, including building a web app that will allow this tool to be easily used from a browser, but before I get to that the largest feature that I need to figure out is how to install this as a module so that it can be called from any script that you want.