# Development TODOs¶

Todo

Implement this.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/gedaproject.py:docstring of tendril.dox.gedaproject.gen_configsdoc, line 6.)

Todo

It may be useful to rebuild the schematics after removing all the unpopulated components. This is a fairly involved process, and is deferred until later.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/gedaproject.py:docstring of tendril.dox.gedaproject.gen_confpdf, line 25.)

Todo

This function presently uses tendril.dox.render.render_lineplot(), which is marked for deprecation. It should be rewritten to use the tendril.dox.render.make_graph() route instead.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/gedaproject.py:docstring of tendril.dox.gedaproject.gen_pcbpricing, line 10.)

Todo

Update this function to also handle registering once the main scripts are better integrated into the core.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/production.py:docstring of tendril.dox.production.gen_pcb_am, line 24.)

Todo

Update this function to also handle registering once the main scripts are better integrated into the core.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/production.py:docstring of tendril.dox.production.gen_delta_pcb_am, line 16.)

Todo

Update this function to also handle registering once the main scripts are better integrated into the core.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/production.py:docstring of tendril.dox.production.gen_production_order, line 9.)

Todo

Document the format of the .yaml file.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/production.py:docstring of tendril.dox.production.gen_production_order, line 12.)

Todo

Streamline the approach and the stage format.

(The original entry is located in /media/ldata/code/tendril/tendril/dox/purchaseorder.py:docstring of tendril.dox.purchaseorder, line 11.)

Todo

Move this function into tendril.testing.analysis and have tendril.dox.testing.render_test_report() use the same infrastructure.

(The original entry is located in /media/ldata/code/tendril/tendril/frontend/blueprints/testing/views.py:docstring of tendril.frontend.blueprints.testing.views.get_test_report, line 44.)

Todo

This class is to eventually move into a tendril.edaif module, which should be used to proxy to the specific implementation for the EDA suite being used.

(The original entry is located in /media/ldata/code/tendril/tendril/gedaif/gsymlib.py:docstring of tendril.gedaif.gsymlib.EDASymbolBase, line 5.)

Todo

Generator support is also built into this class for the moment. It should eventually be moved into EDASymbolBase or a second base. It currently uses parameters seemingly specific gEDA, i.e., fpath and fname. Handling single-file libraries such as those used by Eagle may need a more thought through approach.

(The original entry is located in /media/ldata/code/tendril/tendril/gedaif/gsymlib.py:docstring of tendril.gedaif.gsymlib.GedaSymbol, line 13.)

Todo

Generalize this process and remove vendor specificity.

(The original entry is located in /media/ldata/code/tendril/tendril/scripts/genpcbpricing.py:docstring of tendril.scripts.genpcbpricing, line 27.)

Todo

The content of this function should be moved out of the core and into the instance folder.

(The original entry is located in /media/ldata/code/tendril/tendril/sourcing/digikey.py:docstring of tendril.sourcing.digikey.VendorDigiKey._search_preprocess, line 9.)

Todo

The current approach of handling catergories and subcategories can result in these seemingly ‘exact match’ results to be put into a comparison. If that were to happen, the Package/Case, Unit Price, and MOQ are all necessary pieces of information to determine inclusion. These are not currently parsed from the page soup and should be handled here, preferably without instantiating a full digikey part instance.

(The original entry is located in /media/ldata/code/tendril/tendril/sourcing/digikey.py:docstring of tendril.sourcing.digikey.VendorDigiKey._process_product_page, line 21.)

Todo

The content of this function should be moved out of the core and into the instance folder.

(The original entry is located in /media/ldata/code/tendril/tendril/sourcing/digikey.py:docstring of tendril.sourcing.digikey.VendorDigiKey._get_device_catstrings, line 14.)

Todo

The content of this function should be moved out of the core and into the instance folder.

(The original entry is located in /media/ldata/code/tendril/tendril/sourcing/digikey.py:docstring of tendril.sourcing.digikey.VendorDigiKey._get_device_subcatstrings, line 14.)

Todo

Publish the sofficehelpers package somewhere, or find a pre-existing alternative. If there is a functionally sufficient alternative, it will probably be better.

(The original entry is located in /media/ldata/code/tendril/tendril/utils/files/libreoffice.py:docstring of tendril.utils.files.libreoffice, line 16.)

Todo

A cleaner solution to handle this condition is needed.

(The original entry is located in /media/ldata/code/tendril/tendril/utils/fsutils.py:docstring of tendril.utils.fsutils.get_parent, line 5.)

Todo

The core numbers in this module need to switched to decimal.Decimal.

(The original entry is located in /media/ldata/code/tendril/tendril/utils/types/currency.py:docstring of tendril.utils.types.currency, line 30.)

Todo

Consider replacing uses of urllib/urllib2 backend with requests and simplify this module. Currently, the cache provided with the requests implementation here is the major bottleneck.

(The original entry is located in /media/ldata/code/tendril/tendril/utils/www.py:docstring of tendril.utils.www, line 65.)

Todo

Use redis or so to coordinate between threads to allow a maximum requests per hour/day limit.

(The original entry is located in /media/ldata/code/tendril/tendril/utils/www.py:docstring of tendril.utils.www.ThrottledTransport, line 11.)

Todo

Change this to only hit one part or so, to avoid API rate limit related issues.

(The original entry is located in /media/ldata/code/tendril/profiling/sourcing/vendors.py:docstring of profiling.sourcing.vendors.profile_vendor_get_part, line 4.)

Todo

Change this to only hit one part or so, to avoid API rate limit related issues.

(The original entry is located in /media/ldata/code/tendril/profiling/sourcing/vendors.py:docstring of profiling.sourcing.vendors.profile_vendor_get_part_db, line 5.)