Changelog¶
3.0.1 (2021-02-10)¶
Pin spacy dependency above 3.x.x
Remove support for older spacy versions
3.0.0 (2021-01-27)¶
Breaking Changes¶
- Rework of executors
explore is now a method on the executor object
Add a man-page executor
aclimatise.explore is now deprecated
Replaces
dataclasseswithattrsthroughout
New Features¶
2.2.0 (2020-09-26)¶
Add
command.reanalyse(), which re-analyses the help text stored in the command, using the current parserAdd
command['sort']which lets you access subcommands by name
2.1.0 (2020-09-22)¶
Add bedtools random as a test case
Use a simple metric to exclude flags unless they have a somewhat valid description text, this should result in less false-positive flags being detected
Fixed the id field in the CWL tool definitions including some path elements (like ..)
Use cwltool as a command-line tool instead of via the Python API (it is supposed to be more stable)
2.0.0 (2020-09-16)¶
Rename the package from
acclimatisetoaclimatise, to be consistent with the naming elsewhere. This is a breaking change, and will require you topip install aclimatisefrom now on.Similarly, rename the module to
aclimatise. This will require you toimport aclimatiseRename the CLI utility from
acclimatisetoaclimatise.
1.2.0 (2020-09-13)¶
User-Facing Changes¶
Add output generation for CWL and WDL
Fixes¶
Fix the railroad diagrams not building
Internal Changes¶
Upgrade wdlgen to 3.0.0
Delete hash.py, which was unused
Add Command.outputs, which is a property that returns all outputs
Add (rudimentary) prioritisation for types, ensuring we don’t always choose the type derived from the argument (this is an initial attempt at #37)
Support more complex assertions for test cases, including the number of outputs
Small improvements to the infer_type regexes
Refactor test case assertions into the HelpText class
1.1.1 (2020-09-10)¶
Fix the README file in PyPI
1.1.0 (2020-09-10)¶
User-Facing Changes¶
Better distinction between description blocks and flags, allowing us to successfully parse flags of this form:
--use_strict (enforce strict mode) type: bool default: false --es5_readonly (activate correct semantics for inheriting readonliness) type: bool default: true
Support parsing multiple usage blocks, and add the
UsageInstanceclass, which provides access to all these usage examples in the help. For example after parsing the text below, we would have 4UsageInstanceinstances. The instances are provided onCommand.usage:Usage: shell [options] -e string execute string in V8 shell [options] file1 file2 ... filek run JavaScript scripts in file1, file2, ..., filek shell [options] shell [options] --shell [file1 file2 ... filek] run an interactive JavaScript shell
Add flag and positional de-duplication, ensuring we don’t have duplicate options in the final
CommandAdd the
max_lengthparameter toparse_help: If the input text has more than this many lines, no attempt will be made to parse the file (as it’s too large, will likely take a long time, and there’s probably an underlying problem if this has happened). In this case, an empty Command will be returnedEnforce that a
Positionalmust have at least 2-character names, in the parserEnforce that a
Positionalmust have a description, in the parser
Internal Changes¶
Rewrite of both the flag and usage parser
Added more customizable indent tokens, meaning we no longer need the
customIndentedBlockRefactor both the usage parser and the flag parser into subclasses of
IndentParserMixin, which provides useful common parsing logic that relates to indentationUse
MatchFirstinstead ofMatchLongestlogic in most places in the parser. This should result in more consistent behaviour.Add
typeHLA.jstext, which is derived from thebwa-kitcontainer.
Fixes¶
Always strip out newlines from the WDL description
1.0.3 (2020-08-26)¶
Add a hard timeout to the
DockerExecutor, even if it’s producing output, e.g. theyescommand.
1.0.2 (2020-08-25)¶
Ensure we never return
Nonefrom theDockerExecutorAdd initial parsing of “output inputs”. Thanks to @bernt-matthias (#15). However this information is not yet used in the converters.
1.0.1 (2020-08-22)¶
Enforce timeouts for all executors, including Docker
Restructure the executors such that the parameters are all set in the constructor, not in the
execute()call
1.0.0 (2020-08-19)¶
Since the creation of executors is actually a breaking change, this is now a new major version
User-Facing¶
Support executables that have a file extension e.g. samtools.pl
Refactor the command execution code into a new
Executorclass, and add a docker executor, allowing you to aCLImatise executables in a Docker imageFix for usage parsing when usage is in the middle of the line
Internal¶
Run CI on pull requests
Remove
cwlgenas a dependency, thanks to @illusional (#26)Make
infer_typereturnNoneif it can’t determine a type, allowing better handling behaviour. Thanks to @bernt-matthias (#25)
0.2.2 (2020-07-22)¶
Add support for Python 3.6 again
Parse positionals by default from the CLI
Fix bug involving name generation using different-length strings
Add
samtools bedcovtest caseAdd a
get_subclassesmethod for WrapperGenerator
0.2.1 (2020-07-04)¶
Add automatic railroad diagram generation for grammar
Add names to many of the parser elements to facilitate diagram generations
Add genomethreader test
0.2.0 (2020-05-25)¶
Features¶
Add
parameter_meta(parameter documentation) generation back into WDL definitionsAdd
acclimatise.model.Command.depth(), and :py:attribute:`acclimatise.model.Command.parent` toacclimatise.model.Commandto facilitate the traversal of the command treeAdd
dinosaurandmauveAligneras test cases intest/test_dataConvert tests into a series of test case objects that can be used to parameterize each test function
Add the option to parallelize tests using pytest-parallel
Better conversion of symbols to variable names, for example “/” is now “slash” rather than “solidus”
Add logging to the high level functions like
explore_command, using theacclimatiselogger. This should make tracking errors and progress a tad easier.By default, re-use the best help command from the parent on the child. For example if we determine that
samtools --helpis the most accurate help command forsamtools, then we usesamtools sort --helpwithout having to test out every possible flag hereAdd
generated_usingfield to theCommandclass, which tracks the flag used to generate it
Changes¶
Set the default command depth to 3
aCLImatisenow only supports Python >= 3.7.5, due to this bug
Fixes¶
Avoid variable naming collisions using a generator-based iteration method in
acclimatise.name_generation.generate_namesKeep a global
spacyinstance to minimize memory footprint. This is available in :py:module:`acclimatise.nlp`Fix infinite loops in explore, e.g. tools like
dinosaurandmauveby adding more advanced subcommand detection inacclimatise.is_subcommandMake cmd optional for validators
Always run commands in a pseudo-TTY so that commands like
samtoolswill output helpVarious other fixes
0.1.5 (2020-05-18)¶
Bugfix for when we have no help text
Add a test for a program that we know fails
0.1.4 (2020-05-18)¶
Choose best command using length of help text, if everything else is equal
0.1.3 (2020-05-15)¶
Commandtypes now contain ahelp_textfield which records the string that was used to generate them. This should enable efficient re-parsing, and can also be displayed downstream by BaseCampRewrite tests into a parametrized, consolidated end-to-end test
Fix “OPTIONS” being considered a positional argument, when really it’s a placeholder for flags
Remove positional arguments that precede the main command, so
dotnet Pisces.dllwill be removed from the entire command
0.1.2 (2020-05-15)¶
Generating YAML output now produces one file for each subcommand, to match other converters
0.1.1 (2020-05-13)¶
Make
explore -oflag default to current working directory, for simplicityUpdated the readme
Add installation instructions
0.1.0 (2020-05-13)¶
Fix the doubled variable names like
bytesBytesSmarter POS-based algorithm for generating names from descriptions
Automatically choose a description based name when we have only short named flags like
-nAdd changelog
Add comprehensive testing for CWL and WDL generation
Fix for variable names with symbols in them
Use regex library for faster and more concise regex