Package: haggis
haggisThis is a library of general purpose utility functions and classes written in
Python. Much of this code is intended to support the imprint projecthttps://gitlab.com/madphysicist/imprint. The modules of this library are
more-or-less standalone utilities, organized by category.This library contains plenty of code that relies on external programs and less
common Pyhon libraries. The code is considered to be "extras", in the setuptools
sense. Extras can be omitted without any modification to the python code. The
following extras are supported:[docx]: Support for docx file utilities requires python-docx to be
installed.[latex]: Supporting LaTeX requires a host of external programs to work
properly, so this feature is optional. See the dependency page in the main
documentation for more information.[pdf]: Requires the poppler library to be installed.[ps]: Requires GhostScript to be installed.[plot]: Plotting tools require matplotlib, which is a heavy dependency, and
unnecessary for many purposes.[term]: Terminal colors work out of the box on Linux, but require the
colorama library to work on Windows.[scio]: Science I/O depends on the scipy and astropy libraries to deliver
IDL and FITS file support, respectively.[xlsx]: Support for xlsx file utilities requires openpyxl to be installed.To install extras such as latex and pdf, do::pip install haggis[latex,pdf]See the documentation athttps://haggis.readthedocs.io/en/latestfor more
information, including the API documentation.This library in licensed under the AGPLv3, and compatible with later versions.
You should have received a copy of the GNU Affero General Public License
along with this program.  If not, seehttps://www.gnu.org/licenses/.Changelog0.12.0 (2023-08-29)New functions and classes:string_util.parse_liststring_util.parse_pairstring_util.func_nameNew unit tests:tests.test_string_util.TestParsePairtests.test_string_util.TestParseList0.11.0 (2023-08-29)Bugfixes:Setting correctstacklevelinlogs.add_logging_levelFixes to documentation of properties inrecipes.RangeBuilderandtime.StopwatchCounting tabs in prefix rather than entire string inargs.SmartHelpFormatterAPI changes:New keywords instring_util.horiz_catandstring_util.split_horiz_cat.titles: optional headings included with each columnheaders: string or string generator to insert after the titlewidth: minimum width to allow for each columnhsep: header separator, similar tosep, which it defaults toDroppedmissing='missing'option since it truncated anywayRenamedrecipes.shift_lefttorecipes.shift_upNew unit tests:tests.test_string_utilAdded pytest-cov to required test dependencies0.10.1 (2023-08-21)Fixes to test and documentation warnings0.10.0 (2023-08-20)New modules:argsNew functions and classes:args.SmartHelpFormatterNew unit tests:tests.test_args0.9.2 (2023-08-20)Switched to trunk-based development0.9.1 (2023-03-26)Migrated to GitLab hosting0.9.0 (2023-03-15)New functions and classes:logs.add_detail_levelBugfixes:Added missing default kwargs to monkeypatched version of
logging.LogAdapter method in logs.add_log_levelUpdated bondary handling in npy_util.prune_masklogs.add_logging_level verifies exception info settings if prior calls
are found0.8.0 (2022-11-04)New functions and classes:recipes.chained_getterNew unit tests:tests.test_logs.TestAddLoggingLeveltests.test_logs.TestResetHandlerstests.test_logs.TestLogMaxFiltertests.test_logs.TestMetaLoggableTypetests.test_recipes.TestChainedGetterBugfixes:Fixed sense of inclusive in logs.LogMaxFilterlogs.add_logging_level updates logging.LoggerAdapter0.7.1 (2022-10-24)New functions and classes:npy_util.prune_mask0.7.0 (2022-10-17)New functions and classes:npy_util.masked_indexnpy_util.unmasked_indexnpy_util.find_peaksNew unit tests:tests.test_npy_util.TestMaskedIndextests.test_npy_util.TestUnmaskedIndextests.test_npy_util.TestFindPeaks0.6.0 (2022-10-11)API changes:Parameter stop in recipes.RangeBuilder.update is now optionalProperty span in recipes.RangeBuilderBugfixes:Fixed handling of bulleted list styles in files.docx.list_number0.5.0 (2022-06-17)New functions and classes:multiline_repr in string_utilRangeBuilder in recipes0.4.0 (2022-06-02)New functions and classes:npy_util.replace_fieldNew unit tests:tests.test_npy_util.TestReplaceField0.3.0 (2022-03-29)New functions and classes:load.load_module no longer nested in load.module_as_dictnpy_util.iterate_dtypeBugfixes:files.PreOpenedFile object is now properly iterableNew unit tests:tests.test_load.TestLoadModuletests.test_load.TestModuleAsDict0.2.0 (2022-01-27)New modules:npy_utiltests.test_numberstests.test_objectsNew functions and classes:getsizeof, size_type_mapping in objectsndarray_handler added to size_type_mapping in objectsisolate_dtype in npy_utilas_base, digit_count in numbersNew unit tests:tests.test_objects.TestGetsizeoftests.test_numbers.TestAsBasetests.test_numbers.TestDigitCountAdded docs to sdistMoved map_array, mask2runs, runs2mask from math to npy_util0.1.1 (2022-01-16)Minor updates to first release.New functions and classes:segment_distance in mathBugfixes:math.read_divide correctly handles scalar inputsCreated pytest configuration, added first set of unit testsfiles.tests.test_csvtests.test_math.TestSegmentDistanceImproved documentation with autosummaryAdded this CHANGELOG to installed data0.1 (2022-01-10)First release.New modulestimefiles.uiNew functions and classes:json_registry made public in configurationsemilogx_base, semilogy_base, loglog_base in mpl_utilmap_array, rms in mathsplit_extension in filesAPI changes:string_util.timestamp moved to timeAdded mask2runs and runs2mask to mathImprovements to NumpyObject in configurationImprovements to copy_func in objectsAdded n argument to insert_suffix in filesBufixes:mpl_util.show_extents axis confusionBroken imports in submodulesOfficially supporting Python versions up to 3.10README -> README.md so GitHub can pick it up0.1a2 (2021-01-09)Second alpha release.Major additions to APINew modules:threadsconfigurationstructuresmappingctypes_utilNew functions and classes:CloseableMixin in recipesto_hex, camel2snake, snake2camel, timestamp in string_utilset_labels in mpl_utilsreal_divide, threshold, ang_diff_* in mathAPI changes:Moved half of recipes to mappingUpdated Namespace, (in mapping), added setdefaults0.1a1 (2021-04-03)First alpha release.API changes:SentinelType made public in root packageensure_extension.modes renamed to ensure_exntension.policies in files0.1a1.dev2 (2019-03-31)Second development pre-release.Major overhaul of documentation0.1a1.dev1 (2019-03-20)First development pre-release.First release on PyPI.Created Read the Docs pages.Only code required for imprint present initially.Documentation 90% complete.No tests worth speaking of.