PSLmodels / Business-Taxation

USA Corporate and Pass-Through Business Tax Model
11 stars 10 forks source link

More changes aimed at being able to create a conda package #59

Closed martinholmer closed 5 years ago

martinholmer commented 5 years ago

This is the second of several sets of (non-substantive) changes that are required in order to be able to make conda biztax packages from the source code and data in the Business-Taxation repository.

This pull request adds several files needed to make a conda biztax package and generalizes the reading of CSV data files in data.py so that they can be read from inside the package or from the local disk when using the Business-Taxation source code without a conda biztax package. It also eliminates embedded spaces in file names so that it is easier to work with the files at the OS command prompt on any operating system.

And most importantly, the python test_brc.py command still produces all PASS messages and the python example.py command still produces the exact same results in the test_results/ex_out[12].csv files when these two scripts are executed in two ways: (1) inside the Business-Taxation source code tree without any conda biztax package, and (2) outside the Business-Taxation source code tree and the import biztax statement imports logic and data from a locally-built conda biztax package.

At this stage of development, the scripts that install and remove the local conda package are bash scripts that run on Linux and Mac OSX, but not on Windows. It is not clear how big a problem this is. The third set of changes will enable the building and uploading to the PSLmodels channel on www.anaconda.org of eight conda biztax packages (for two versions of Python, 3.6. and 3.7, on each of four operating systems) for each Business-Taxation release. This will be done using the PSLmodels / Package-Builder capability, which does run under Windows as well as under Mac OSX and Linux.

martinholmer commented 5 years ago

@codykallen, I plan to add conda.recipe/install_local_package.py and conda.recipe/remove_local_package.py in the next pull request. This will mean that users on any operating system will be able to install and remove a locally-built biztax package. There is also a need for those capabilities in Tax-Calculator and Behavioral-Responses, so now seems like the right time to generalize the old bash scripts.

I plan to do this development work in Behavioral-Responses, where I have merge permission. If the work there pans out, I'll copy those two files to the Tax-Calculator repo and include them in another Business-Taxation pull request. Does that make sense as a course of action?

codykallen commented 5 years ago

@martinholmer, that course of action seems fine to me. In the meantime, I'll merge this in shortly.