Version LogΒΆ

''' ======= Scripts ======= Fast Plots, Initial Conversion from Excel to Python 0.1 Legacy Script - Laminate_Stress_Constant_Thickness_1g.ipynb - Calculates stress, plot, export data for single geometry. Supports insets. 0.2 - Legacy Script - Laminate_Stress_Constant_Thickness_2d.ipynb - Handles multiple geometries, heiarchical indexing, more... 0.3 Legacy Script - Laminate_Stress_Constant_Thickness_3a3.ipynb - Abstracted layers to classes. - Forked to become the LamAna project. ============= Local Program ============= Standalone Program, Abstracted for General Application, Single Notebook 0.4.0 Organized module and package layout 0.4.1 Most user inpurt API conventions worked out - `input_.Geometry` - `distributions.Case(*args)`, `distributions.Case().apply()` - `Geometry().itotal()` 0.4.2 General Convention standardized types for Geometry object 0.4.2a Developed total method; float and list wrappers covering attributes 0.4.2b Develop total methods and tests; cleaned docs 0.4.3 Developed `contructs` module to return DataFrames 0.4.3a Built Stack class giving skeletal layout for each Geometry 0.4.3b Implemented namedtuples called `StackTuple` in the `Stack` class - Deprecated ModdedList and ModdedFloat wrappers - Implemented namedtuples called GeometryTuple in the `Geometry` class - Made unittest for p >= 1 (odd and even) 0.4.3c Added stress states to laminates. 0.4.3c1 Refactored the ConstuctTheory workflow - Refocused on building separate Construct and Theory objects - Removed double call of snapshot and laminate model in Case 0.4.3c2 Laminate object made the official LaminateModel object w/ __repr__ - laminate_tuple deprecated. self attrs used instead - LaminatModel object is now Laminae self called directly in Case - `LM` attribute returns the LaminateModel object - Refactored frames and snapshots to generate lists only when called. 0.4.3c3 Developed Laminate Object to calculate Planar variables 0.4.3c4 Implemented update_columns() into Laminate as `_update_dimensions()`. First trial with version 4a. Testing needs resolution. Refactored `_update_dim..()` w/copies and returns; cleared warnings. 1.5x longer to run 62 tests with now; from 33s to 86s. Tested Planar values for different plies, ps. 0.4.3c4b Verify values and algorightms with CLT. - Added drag and drop spreadsheet testing of laminates. - Removed a labels test with improved test speed. - Built the `utils.tools` modulue and implemented in tests. - Fixed critical BUG in inner_i ordering. 0.4.3c4c Cleaned deprecations, and made use of `laminator()` - Applied `shift` to discontinuity values. - Added nplies, p, total attrs to Laminate 0.4.3c4d Vectorize _update_dimensions(). Deprecated for tech. - Documented alogrithms. - Made test_controls for various case controls. - Deprecated Laminae classes; maybe someday. Only dfs for now. - Rename to LFrame. Changed planar term to dimensionals. 0.4.3c5 Deprecation code cleared. Learned about iterators, generators, gen expressions and more. 0.4.3c5a Add iterator functionality; replaced empty list/append code. - Add lt_exceptions for relevent error handling. 0.4.3c5b The Big Generator Switch - Improved architexture using generators in Geometry and Stack. - The StackTuple has added alias and unifed name to 'n-ply'. decode_geometry() and indentify_geometry() were refactored. - Running 75 tests at 109s. No big speed up. The tests are slow. 0.4.3c6 Marked for theories model and Data variable implementation. - LFrame returns IDs and Dimensional columns only - LMFrame returns full DataFrame. - Many tests developed for theories and models. - Models accepted as functions or classes - Minor exception handling to prevent backdoor API breaking. 0.4.3d Deprecations, cleanup, reorganization, documentation. - Deprecated .itotal() - Renamed Model to BaseModel and subclassed from it. - Refactored laminator to yield case, not LMs - Reorganized docs; added Delta Code and new case build idioms (2/3) - Refactored tests for new case build ideology (Py2/3 compliant) - Started Cases object outline to replace laminator. 0.4.3d1 continued... - Defaults() abstracted to BaseDefaults() - Defaults() subclassed in Wilson_LT - Refactored BaseDefaults() geo_inputs dict keys with names - Automated BaseDefaults() groupings - Built smarter tests to allow extension of BaseDefaults() - Moved BaseDefaults() from utils.tools to input_ module - Geometry and LaminateModel objects support == and != comparisions 0.4.3d2 continued... - Rename geo_params to load_params 0.4.3d3 continued... - Changed mat_params default type from Dataframe to (nested) dict - mat_params now DataFrame and assert_equally-friendly - Cleaner exception handing of apply(mat_params) - Deprecated materials_to_df in favor of Standard Form conversions - Replaced @staticmethod with @classmethod - Cleaned Case helpers; moved to BaseDefaults 0.4.3d4 continued... - Refactored FeatureInput; Parameters, Properties, Materials... - Support of ordered materials lists - Added get_materials() - Extended case params and props to give Series and DataFrame views - Tested models columns by written new .csv files - Cleanup, privatizing, Geo_object comparison tests, user-defined material setting, material stack order tests, change to mat_props. 0.4.4 Marked `distributions` plotting. - Defined Cases and select method. - Made Geometry and Laminate hashable for set comparison w/tests. - Extended Cases.select() with set operations. - Implemented Cases.to_csv - Implemented Cases in distributions - Wrote Cases tests. 0.4.4a Cases documentation in intermediate tutorial; upgrade from beta 0.4.4b Cases.__eq__ handles DataFrame/Series attrs - Laminate.__eq__ handles DataFrame/Series attrs - Refactored LPEP numbers. LPEP 001 contains micro-PEPs. - Plotting - Reverted to k=1 to correlate w/LT definitions in the paper. 0.4.4b1 continued... - Initial implementation of case.plot() - Using library from external notebook for 1st demo to prof. - Worked through labeling keywords for plots - _distribplot: halfplots, annotations, insets, extrema - _multiplot: nrows, ncols, deletes empty axes, labels - Added LAMANA_PALETTE - Implemeentated Laminate.extrema - Rewrote controls with new k algorithm - Reorganized ToDo list: headings (functionalize, clarify, optimize). 0.4.4b2 continued... - Final implementation of case.plot(), _distribplot() & _multiplot() - Cleanup docstrings, move abstractions to beta, clean beta - Implement Case.plot() multiplots - Revise Demo notebook. 0.4.4b3 continued... - Make Cases process cases - Implement Cases.plot() multiplots - LPEP 003 Pattern development and cases input standards. 0.4.5 Marked for release candidate 1 - Cleanup - Refined exception handing of rollback; improved dormant tests - Implemented lt_exceptions and IndeterminateError - Register GitHub, pypitest and pypi - prepare revised repo structure 0.4.5a1 BRCH: Refactor iteration in Geometry, distributions and Laminate. - Refactored *.apply iter strings, not objects, cache ... 100s faster - 198 tests ~300s, 200s faster since output_ - Coded is_valid() with regex - Write References to utils - Finalize stable release before pip and GitHub upload; old-sytle 0.4.5b1 First Fork from stable package. - move is_valid to Beta-functionalize; cleanup Quick tests - Use text editor, Atom, to rename lamana, sp check and remove tabs - Make Main template for pull and push - Repo redesign - flake8 0.4.5b2 "Pull" from flake8'd core modules. - Pulled updated modules - Figure out __version__ - Suspended repo changes until official GitHub push. =============== The Large Split =============== Version Control, GitHub Upload, Open Source Tools, PyPI Releases, Separated Notebooks 0.4.6 Official GitHub release (usable; needs repo maintenace) - Reflects suspended repo state as of 0.4.5b2 - Nearly equals 0.4.5b2 but cleaner directory, new repo tree - Uses new templates to run code; clonable - Minimal point releases allowed. - Updated version number. 0.4.7 Initial PyPI release - Rolled back due to pandas breaking 0.4.8 Pre-conda, gitflow, travis release: dev reliable - Init gitflow - Add Travis CI to install pinned dependencies and check builds - Pass builds 2.7, 3.3, 3.4, 3.5, 3.5.1 on Linux - Main deps matplotlib==1.4.3, numpy==1.9.2, pandas==0.16.2 - Reproducible builds with `pip freeze`, pinned deps (LPEP 001.14) - Suggest "Hands-on/off" pip install options - Update license info - Update release workflow in tutorial 0.4.9 Flagship PyPI release - Install with conda through pip - Works with IPython/Jupyter - Add `find_version()` to `setup.py`; confirm tarball url works - Update source to use latest `pandas>=0.17.1` and `numpy` - Fixed pandas issue (backwards compatible): - replace `np.cumsum` with pandas `aggregate` method - replace pandas `sort` with `sort_index` 0.4.10 Documentation Release - flake8 - docs - numpy docstrings - Register readthedocs - Initial codecov and coverage - nb templates (main, doc-builder) - Fix df.sort to address pandas API changes in 0.17.1 0.4.11 Housekeeping - cross-platform stability, coverage and more - Add environment.yaml files for 2.7 and 3.3 - Continuous Integration on Windows (using Appveyor); no 64x Py3.4 support - Add negative index handling in Cases (not negative step) - Deprecate __getslice__ in Cases(); affect Py < 2.6 - Improve coverage (+20%) - Try logging - Add dashboards; revamp export - Speed up readthedocs - Refactor BaseModel with abstract hook method - Add warnings - Deprecate warn util.write_csv, Cases.to_csv - Add config file - Add py35 environment yaml 0.4.12 Hotfix - unpinned dependencies - Add openpyxl to setup.py; fix export BUG - Add six to setup.py - Resolve workflow for nb regression tests - Add picture to README - Fix Appveyor badge - Add conda install deps to instructions for reliable install - Clean up docs '''