Changelog
The database specification will be separately tracked from the Python DB wrapper and CLI tool
E7EPD Database Specification
- v0.05:
Initial Release
- v0.1:
Removed the Microcontroller table
Added an all-encompassing IC table
Added a PCB Table
Clean up some mismatch between the wrapper and this spec
- v0.2:
Added Inductor table
Added Diode table
- v0.3:
Added a
storage
key to all partsMerged
user_comments
andpart_comments
to just onecomments
columnRemoved
power
for the capacitor tableUpdated type of the
comments
column toTEXT
- Added a spec for
Crystals
MOSFETs
BJTs
Connectors
LEDs
Fuses
Switches/Buttons
Misc/Others
- v0.4:
Added datasheet column for all components
Removal of
project_name
from the PCB table and replaced itboard_name
Added a
parts
JSON list for the PCB table, allowing parts to be cross-referenced per board
- v0.5:
Changed the SQL primary key for all components to
mfr_part_numb
, and removed theid
columnAdded a
user
column for all componentsRemoved
sub_rev
column fromPCB
table
Database Python DB Wrapper
- v0.05:
Initial Release
- v0.2:
Updated spec for Database Rev 0.2
Changed main class name from
EEData
toE7EPD
Allowing user-given
sqlite3
connectionsAdded some autocomplete lists for some part’s info like IC manufacturers and capacitor types
Better documentation
Added
`wipe_database`
functionAdded a way for the backend to store configurations about itself
Added a key to check the database specification the database is under and the
E7EPD
class
- v0.3:
Switched to sqlalchemy for handing SQL
As the wrapper input includes a sqlalchemy engine, any sql type that sqlalchemy supports should be supported
Updated spec for Database Rev 0.3
Added the first migration from Database Rev 0.2 to 0.3 with
alembic
Added a
PCB
class from database spec (didn’t for 0.2)Added autofill helpers for the new component types
Re-factored backend spec and display_as lists
- v0.4:
Updated spec for Database Rev 0.4
Added migrations from database rev 0.3 to 0.4
More autofill helpers
Removed the
update_part
function as the variable returned byget_part_by_id
orget_part_by_mfr_part_numb
already has a database link, so modifying that with acommit
command will make the changesAdded a
commit
androllback
function for when modifying a returned part linked to the databaseRe-made the
backup_db
function to actually work. Dumps content as a JSON file
- v0.4.1:
No changes
- v0.5:
Added an overall E7EPD helper function to get all manufacturer part number
Separated the
PCB
class into it’s own compared to components with some different function callsAdded a
User
column per componentNew
print_formatted_from_spec
function for resistances, to print out for example “A 5k resistor with a 5% tollerance”get_sorted_parts()
component class function now allows operators like “>” and “<”- Removed the following component class functions:
append_stock_by_manufacturer_part_number
remove_stock_by_manufacturer_part_number
get_part_by_id
Added a typing hinting for every component class instead of just
GenericComponent
Seperated the
GenericPart
class intoGenericItem
andGenericComponent
,GenericComponent
having functions more specific to components (like things related to the manufacturer part number)
- v0.5.1:
Removed the EmptyInDatabase return exception from get_all_mfr_part_numb_in_db(), instead just returns an empty list
CLI
- v0.1:
Initial Release
- v0.2:
Added initial setup for user to set the
sqlite3
database fileAdded option to enter values as a percentage (so for example 1/4 for 0.25)
Added autocomplete for part’s values like capacitor type, if they exist in the database wrapper
Added autocomplete hinting when a manufacturer part number is asked
Added option to remove and append stock to a part
Moved around options so that there is an “initial screen” before choosing components
Added a check for the database revision on startup
- v0.3:
Updated for the new Wrapper 0.3 database argument
Changed options so it’s easier to add a new part
Allowing option for a mySQL database
Allowing option to add multiple databases
Allowing option to select which database to connect to
- v0.4:
Added ability to scan a Digikey barcode for the manufacturer part number
Added ability to edit a part’s properties
- v0.4.1:
Fixed bug with an empty database where you could not enter a manufacturer part number
Added more safety checks and exception handling around the user input function
Changed the way the Digikey API got loaded and set as to not be intrusive
Added docs for the Digikey barcode scanning feature
Fixed the Digikey API Settings option in the main menu to allow changing the Client ID and Client Secret
Added a __main__.py file to allow execution of e7epd as a Python module with python -m e7epd
- v0.5:
Added more docs to existing functions to make it easier to interpret
Made it so creating an existing part would prompt to instead add the part to the existing stock
Added better messages about stock when adding or removing stock
Added PCBs as an option to add them
Added a menu to search the current inventory against a PCB to see if one can be built
Allowing for usage of operators like
>, >=, <, <=
when filtering the databaseAdded new
Seach Parts
menu option (which is the same asIndividual Components View -> Print parts in DB
- v0.5.1:
Fixed bug with a new empty database when looking up the current list of parts to use as a typehint
Fixed inputting a negative number in removing or adding stock
Fixed exception when there are no PCBs in the database
- TODOs:
Add option to import BOM file/CSV file
Add ability to “interact” with the PCB table
Add cross-coerelation between a PCB’s parts and parts in the database