All Versions
14
Latest Version
Avg Release Cycle
55 days
Latest Release
1135 days ago

Changelog History
Page 1

  • v0.4.0 Changes

    February 18, 2021

    โž• Added

    • ๐Ÿ†• New model for Anomaly Detection
    • Ablity to specify maximum number of contexts running at a time
    • CLI and Python example usage of Custom Neural Network
    • ๐Ÿ’… PyTorch loss function entrypoint style loading
    • ๐Ÿ‘ Custom Neural Network, last layer support for pre-trained models
    • Example usage of sklearn operations
    • Example Flower17 species image classification
    • Configloading ablity from CLI using "@" before filename
    • ๐Ÿ“„ Docstrings and doctestable example for DataFlowPreprocessSource
    • XGBoost Regression Model
    • Pre-Trained PyTorch torchvision Models
    • Spacy model for NER
    • Ability to rename outputs using GetSingle
    • Tutorial for using NLP operations with models
    • ๐Ÿ”Œ Operations plugin for NLP wrapping spacy and scikit functions
    • ๐Ÿ‘Œ Support for default value in a Definition
    • Source for reading images in directories
    • ๐Ÿ”Œ Operations plugin for image preprocessing
    • -pretty flag to list records and predict commands
    • daal4py based linear regression model
    • DataFlowPreprocessSource can take a config file as dataflow via the CLI.
    • ๐Ÿ‘Œ Support for link on conditions in dataflow diagrams
    • edit all command to edit records in bulk
    • ๐Ÿ‘Œ Support for Tensorflow 2.2
    • Vowpal Wabbit Models
    • ๐Ÿ‘ Python 3.8 support
    • binsec branch to operations/binsec
    • โœ… Doctestable example for model_predict operation.
    • โœ… Doctestable examples to operation/mapping.py
    • shouldi got an operation to run Dependency-check on java code.
    • load and run functions in high level API
    • โœ… Doctestable examples to db operations.
    • ๐Ÿ“œ Source for parsing .ini file formats
    • โœ… Tests for noasync high level API.
    • โœ… Tests for load and save functions in high level API.
    • 0๏ธโƒฃ Operation inputs and outputs default to empty dict if not given.
    • Ability to export any object with dffml service dev export
    • Complete example for dataflow run cli command
    • โœ… Tests for default configs instantiation.
    • Example ffmpeg operation.
    • ๐Ÿš€ Operations to deploy docker container on receiving github webhook.
    • ๐Ÿ†• New use case Redeploying dataflow on webhook in docs.
    • ๐Ÿ“š Documentation for creating Source for new File types taking .ini as an example.
    • ๐Ÿ†• New input modes, output modes for HTTP API dataflow registration.
    • Usage example for tfhub text classifier.
    • AssociateDefinition output operation to map definition names to values produced as a result of passing Inputs with those definitions to operations.
    • DataFlows now have a syntax for providing a set of definitions that will override the operations default definition for a given input.
    • Source which modifies record features as they are read from another source. Useful for modifying datasets as they are used with ML commands or editing in bulk.
    • Auto create Definition for the op when they might have a spec, subspec.
    • shouldi use command which detects the language of the codebase given via path to directory or Git repo URL and runs the appropriate static analyzers.
    • ๐Ÿ‘Œ Support for entrypoint style loading of operations and seed inputs in dataflow create.
    • Definition for output of the function that op wraps.
    • ๐Ÿ”ฆ Expose high level load, run and save functions to noasync.
    • Operation to verify secret for GitHub webhook.
    • Option to modify flow and add config in dataflow create.
    • Ability to use a function as a data source via the op source
    • ๐Ÿ‘‰ Make every model's directory property required
    • ๐Ÿ†• New model AutoClassifierModel based on AutoSklearn.
    • ๐Ÿ†• New model AutoSklearnRegressorModel based on AutoSklearn.
    • Example showing usage of locks in dataflow.
    • -skip flag to service dev install command to let users not install certain core plugins
    • HTTP service got a -redirect flag which allows for URL redirection via a HTTP 307 response
    • ๐Ÿ‘Œ Support for immediate response in HTTP service
    • Daal4py example usage.
    • Gitter chatbot tutorial.
    • Option to run dataflow without sources from cli.
    • โœ… Sphinx extension for automated testing of tutorials (consoletest)
    • Example of software portal using DataFlows and HTTP service
    • Retry parameter to Operation. Allows for setting number of times operation should be retried before it's exception should be raised. ### ๐Ÿ”„ Changed
    • ๐Ÿ‘€ Renamed -seed to -inputs in dataflow create command
    • ๐Ÿ“‡ Renamed configloader/png to configloader/image and added support for loading JPEG and TIFF file formats
    • Update record __str__ method to output in tabular format
    • โšก๏ธ Update MNIST use case to normalize image arrays.
    • ๐Ÿ’… arg_ notation replaced with CONFIG = ExampleConfig style syntax for parsing all command line arguments.
    • ๐Ÿšš Moved usage/io.rst to docs/tutorials/dataflows/io.rst
    • edit command substituted with edit record
    • ๐Ÿ”Œ Edit on Github button now hidden for plugins.
    • โœ… Doctests now run via unittests
    • Every class and function can now be imported from the top level module
    • op attempts to create Definitions for each argument if an inputs are not given.
    • 0๏ธโƒฃ Classes now use CONFIG if it has a default for every field and config is None
    • Models now dynamically import third party modules.
    • Memory dataflow classes now use auto args and config infrastructure
    • ๐Ÿ–จ dffml list records command prints Records as JSON using .export()
    • ๐Ÿ”‹ Feature class in dffml/feature/feature.py initialize a feature object
    • All DefFeatures() functions are substituted with Features()
    • All feature.type() and feature.lenght() are substituted with feature.type and feature.length
    • FileSource takes pathlib.Path as filename
    • โœ… Tensorflow tests re-run themselves up to 6 times to stop them from failing the CI due to their randomly initialized weights making them fail ~2% of the time
    • ๐Ÿ’… Any plugin can now be loaded via it's entrypoint style path
    • with_features now raises a helpful error message if no records with matching features were found
    • Split out model tutorial into writing the model, and another tutorial for packaging the model.
    • โœ… IntegrationCLITestCase creates a new directory and chdir into it for each test
    • โœ… Automated testing of Automating Classification tutorial
    • ๐Ÿ–จ dffml version command now prints git repo hash and if the repo is dirty ### ๐Ÿ›  Fixed
    • export_value now converts numpy array to JSON serializable datatype
    • CSV source overwriting configloaded data to every row
    • Race condition in MemoryRedundancyChecker when more than 4 possible parameter sets for an operation.
    • ๐Ÿ“œ Typing of config values for numpy parsed docstrings where type should be tuple or list
    • Model predict methods now use SourcesContext.with_features ### โœ‚ Removed
    • โœ… Monitor class and associated tests (unused)
    • DefinedFeature class in dffml/feature/feature.py
    • DefFeature function in dffml/feature/feature.py
    • load_def function in Feature class in dffml/feature/feature.py
  • v0.3.7 Changes

    April 14, 2020

    [0.3.7] - 2020-04-14

    โž• Added

    • IO operations demo and literal_eval operation.
    • Python prompts >>> can now be enabled or disabled for easy copying of code into interactive sessions.
    • Whitespace check now checks .rst and .md files too.
    • GetMulti operation which gets all Inputs of a given definition
    • โœ… Python usage example for LogisticRegression and its related tests.
    • ๐Ÿ‘Œ Support for async generator operations
    • Example CLI commands and Python code for SLRModel
    • save function in high level API to quickly save all given records to a
      source
    • ๐Ÿ”ง Ability to configure sources and models for HTTP API from command line when
      starting server
    • ๐Ÿ“š Documentation page for command line usage of HTTP API
    • Usage of HTTP API to the quickstart to use trained model

    ๐Ÿ”„ Changed

    • ๐Ÿ”Œ Renamed "arg" to "plugin".
    • CSV source sorts feature names within headers when saving
    • ๐Ÿšš Moved HTTP service testing code to HTTP service util.testing

    ๐Ÿ›  Fixed

    • ๐Ÿ”Œ Exporting plugins
    • ๐Ÿ“œ Issue parsing string values when using the dataflow run command and
      specifying extra inputs.

    โœ‚ Removed

    • Unused imports
  • v0.3.6 Changes

    April 04, 2020

    โž• Added

    • ๐Ÿ–จ Operations for taking input from the user AcceptUserInput and for printing the output print_output
    • Hugging Face Transformers tensorflow based NER models.
    • PNG ConfigLoader for reading images as arrays to predict using MNIST trained models
    • ๐Ÿ“„ Docstrings and doctestable examples to record.py.
    • Inputs can be validated using operations
      • validate parameter in Input takes Operation.instance_name
    • ๐Ÿ†• New db source can utilize any database that inherits from BaseDatabase
    • โšก๏ธ Logistic Regression with SAG optimizer
    • ๐Ÿ“š Test tensorflow DNNEstimator documentation examples in CI
    • shouldi got an operation to run cargo-audit on rust code.
    • ๐Ÿ‘ท Moved all the downloads to tests/downloads to speed the CI test.
    • ๐Ÿ“š Test tensorflow DNNEstimator documentation exaples in CI
    • โž• Add python code for tensorflow DNNEstimator
    • Ability to run a subflow as if it were an operation using the dffml.dataflow.run operation.
    • ๐Ÿ‘Œ Support for operations without inputs.
    • โœ… Partial doctestable examples to features.py
    • โœ… Doctestable examples for BaseSource
    • Instructions for setting up debugging environment in VSCode ### ๐Ÿ›  Fixed
    • ๐Ÿ†• New model tutorial mentions file paths that should be edited.
    • DataFlow is no longer a dataclass to prevent it from being exported incorrectly.
    • operations_parameter_set_pairs moved to MemoryOrchestratorContext
    • ๐Ÿ”Œ Ignore generated files in docs/plugins/
    • Treat "~" as the the home directory rather than a literal
    • ๐Ÿ Windows support by selecting asyncio.ProactorEventLoop and not using asyncio.FastChildWatcher.
    • ๐Ÿ“ฆ Moved SLR into the main dffml package and removed scratch:slr. ### ๐Ÿ”„ Changed
    • ๐Ÿ”จ Refactor model/tensroflow
  • v0.3.5 Changes

    March 10, 2020

    [0.3.5] - 2020-03-10

    โž• Added

    • Parent flows can now forward inputs to active contexts of subflows.
      • forward parameter in DataFlow
      • subflow in OperationImplementationContext
    • ๐Ÿ“š Documentation on writing examples and running doctests
    • โœ… Doctestable Examples to high-level API.
    • Shouldi got an operation to run npm-audit on JavaScript code
    • ๐Ÿ“„ Docstrings and doctestable examples for record.py (features and evaluated)
    • Simplified model API with SimpleModel
    • ๐Ÿ“š Documentation on how DataFlows work conceptually.
    • ๐Ÿ’… Style guide now contains information on class, variable, and function naming.

    ๐Ÿ”„ Changed

    • ๐Ÿ“š Restructured contributing documentation
    • โœ… Use randomly generated data for scikit tests
    • ๐Ÿ”„ Change Core to Official to clarify who maintains each plugin
    • Name of output of unsupervised model from "Prediction" to "cluster"
    • ๐Ÿ“š Test scikit LR documentation examples in CI
    • ๐Ÿš€ Create a fresh archive of the git repo for release instead of cleaning
      ๐Ÿš€ existing repo with git clean for development service release command.
    • โœ… Simplified SLR tests for scratch model
    • ๐Ÿ“š Test tensorflow DNNClassifier documentation exaples in CI
    • config directories and files associated with ConfigLoaders have been renamed
      to configloader.
    • Model config directory parameters are now pathlib.Path objects
    • ๐Ÿ†• New model tutorial and skel/model use simplifeid model API.
  • v0.3.4 Changes

    February 29, 2020

    โž• Added

    • Tensorflow hub NLP models.
    • Notes on development dependencies in setup.py files to codebase notes.
    • โœ… Test for cached_download
    • dffml.util.net.cached_download_unpack_archive to run a cached download and unpack the archive, very useful for testing. Documented on the Networking Helpers API docs page.
    • ๐Ÿ‘ท Directions on how to read the CI under the Git and GitHub page of the contributing documentation.
    • HTTP API
      • Static file serving from a directory with -static
      • api.js file serving with the -js flag
      • Docs page for JavaScript example
    • ๐Ÿ‘• shouldi got an operation to run golangci-lint on Golang code
    • Note about using black via VSCode ### ๐Ÿ›  Fixed
    • Port assignment for the HTTP API via the -port flag ### ๐Ÿ”„ Changed
    • repo/Repo to record/Record
    • Definitions with a spec can use the subspec parameter to declare that they are a list or a dict where the values are of the spec type. Rather than the list or dict itself being of the spec type.
    • ๐Ÿ›  Fixed the URL mentioned in example to configure a model.
    • ๐Ÿ‘ท Sphinx doctests are now run in the CI in the DOCS task.
    • ๐Ÿ‘• Lint JavaScript files with js-beautify and enforce with CI ### โœ‚ Removed
    • Unused imports
  • v0.3.3 Changes

    February 11, 2020

    [0.3.3] - 2020-02-10

    โž• Added

    • ๐Ÿšš Moved from TensorFlow 1 to TensorFlow 2.
    • IDX Sources to read binary data files and train models on MNIST Dataset
    • scikit models
      • Clusterers
      • KMeans
      • Birch
      • MiniBatchKMeans
      • AffinityPropagation
      • MeanShift
      • SpectralClustering
      • AgglomerativeClustering
      • OPTICS
    • allowempty added to source config parameters.
    • Quickstart document to show how to use models from Python.
    • ๐Ÿ“š The latest release of the documentation now includes a link to the
      ๐Ÿ“š documentation for the master branch (on GitHub pages).
    • ๐Ÿณ Virtual environment, GitPod, and Docker development environment setup notes to
      the CONTRIBUTING.md file.
    • ๐Ÿ”„ Changelog now included in documenation website.
    • Database abstraction dffml.db
      • SQLite connector
      • MySQL connector
    • ๐Ÿ’… Documented style for imports.
    • ๐Ÿ“„ Documented use of numpy docstrings.
    • Inputs can now be sanitized using function passed in validate parameter
    • ๐Ÿ’… Helper utilities to take callables with numpy style docstrings and
      create config classes out of them using make_config.
    • File listing endpoint to HTTP service.
    • ๐Ÿ‘ป When an operation throws an exception the name of the instance and the
      parameters it was executed with will be thrown via an OperationException.
    • Network utilities to preformed cached downloads with hash validation.
    • Development service got a new command, which can retrieve an argument passed
      to setuptools setup function within a setup.py file.

    ๐Ÿ”„ Changed

    • All instances of src_url changed to key.
    • readonly parameter in source config is now changed to readwrite.
    • predict parameter of all model config classes has been changed from str to Feature.
    • ๐Ÿ’ป Defining features on the command line no longer requires that defined features
      ๐Ÿ›  be prefixed with def:
    • ๐Ÿ‘ป The model predict operation will now raise an exception if the model it is
      passed via it's config is a class rather than an instance.
    • entry_point and friends have been renamed to entrypoint.
    • ๐Ÿ‘‰ Use FastChildWatcher when run via the CLI to prevent BlockingIOErrors.
    • TensorFlow based neural network classifier had the classification parameter
      in it's config changed to predict.
    • SciKit models use make_config_numpy.
    • Predictions in repos are now dictionary.
    • All instances of label changed to tag
    • Subclasses of BaseConfigurable will now auto instantiate their respective
      config classes using kwargs if the config argument isn't given and keyword
      arguments are.
    • ๐Ÿ“š The quickstart documentation was improved as well as the structure of docs.

    ๐Ÿ›  Fixed

    • CONTRIBUTING.md has -e in the wrong place in the getting setup section.
    • Since moving to auto args() and config(), BaseConfigurable no longer
      ๐Ÿ“„ produces odd typenames in conjunction with docs.py.
    • Autoconvert Definitions with spec into their spec

    โœ‚ Removed

    • The model predict operation erroneously had a msg parameter in it's config.
    • Unused imports identified by deepsource.io
    • โœ… Evaluation code from feature.py file as well as tests for those evaluations.
  • v0.3.2 Changes

    January 03, 2020

    โž• Added

    • scikit models
      • Classifiers
      • LogisticRegression
      • GradientBoostingClassifier
      • BernoulliNB
      • ExtraTreesClassifier
      • BaggingClassifier
      • LinearDiscriminantAnalysis
      • MultinomialNB
      • Regressors
      • ElasticNet
      • BayesianRidge
      • Lasso
      • ARDRegression
      • RANSACRegressor
      • DecisionTreeRegressor
      • GaussianProcessRegressor
      • OrthogonalMatchingPursuit
      • Lars
      • Ridge
    • โœ… AsyncExitStackTestCase which instantiates and enters async and non-async contextlib exit stacks. Provides temporary file creation.
    • ๐Ÿš€ Automatic releases to PyPi via GitHub Actions
    • ๐Ÿ“š Automatic documentation deployment to GitHub Pages
    • Function to create a config class dynamically, analogous to make_dataclass
    • ConfigLoaders class which loads config files from a file or directory to a dictionary. ### ๐Ÿ”„ Changed
    • โœ… CLI tests and integration tests derive from AsyncExitStackTestCase
    • SciKit models now use the auto args and config methods. ### ๐Ÿ›  Fixed
    • Correctly identify when functions decorated with op use self to reference the OperationImplementationContext.
    • shouldi safety operation uses subprocess communicate method instead of stdin pipe writes.
    • ๐Ÿ“œ Negative values are correctly parsed when input via the command line.
    • Do not lowercase development mode install location when reporting version.
  • v0.3.1 Changes

    December 12, 2019

    โž• Added

    • โœ… Integration tests using the command line interface.
    • โœ… Operation run_dataflow to run a dataflow and test for the same. ### ๐Ÿ”„ Changed
    • ๐Ÿ”‹ Features were moved from ModelContext to ModelConfig
    • CI is now run via GitHub Actions
    • โœ… CI testing script is now verbose
    • args and config methods of all classes no longer require implementation. BaseConfigurable handles exporting of arguments and creation of config objects for each class based off of the CONFIG property of that class. The CONFIG property is a class which has been decorated with dffml.base.config to make it a dataclass.
    • ๐Ÿ”Œ Speed up development service install of all plugins in development mode
    • ๐Ÿ”Œ Speed up named plugin load times ### ๐Ÿ›  Fixed
    • DataFlows with multiple possibilities for a source for an input, now correctly look through all possible sources instead of just the first one.
    • DataFlow MemoryRedundancyCheckerContext was using all inputs in an input set and all their ancestors to check redundancy (a hold over from pre uid days). It now correctly only uses the inputs in the parameter set. This fixes a major performance issue.
    • MySQL packaging issue.
    • Develop service running one off operations correctly json-loads dict types.
    • Operations with configs can be run via the development service
    • JSON dumping numpy int* and float* caused crash on dump.
    • CSV source always loads src_urls as strings. ### โœ‚ Removed
    • ๐Ÿšš CLI command operations removed in favor of dataflow run
    • Duplicate dataflow diagram code from development service
  • v0.3.0 Changes

    October 26, 2019

    [0.3.0] - 2019-10-26

    โž• Added

    • ๐Ÿ‘€ Real DataFlows, see operations tutorial and usage examples
    • Async helper concurrently nocancel optional keyword argument which, if set is
      a set of tasks not to cancel when the concurrently execution loop completes.
    • โœ… FileSourceTest has a test_label method which checks that a FileSource knows
      how to properly load and save repos under a given label.
    • ๐Ÿ”€ Test case for Merge CLI command
    • Repo.feature method to select a single piece of feature data within a repo.
    • Dev service to help with hacking on DFFML and to create models from templates
      in the skel/ directory.
    • Classification type parameter to DNNClassifierModelConfig to specifiy data
      type of given classification options.
    • ๐Ÿ“œ util.cli CMD classes have their argparse description set to their docstring.
    • util.cli CMD classes can specify the formatter class used in
      argparse.ArgumentParser via the CLI_FORMATTER_CLASS property.
    • Skeleton for service creation was added
    • Simple Linear Regression model from scratch
    • Scikit Linear Regression model
    • Community link in CONTRIBUTING.md.
    • ๐Ÿ“„ Explained three main parts of DFFML on docs homepage
    • ๐Ÿ“š Documentation on how to use ML models on docs Models plugin page.
    • Mailing list info
    • Issue template for questions
    • Multiple Scikit Models with dynamic config
    • Entrypoint listing command to development service to aid in debugging issues
      with entrypoints.
    • HTTP API service to enable interacting with DFFML over HTTP. Currently
      ๐Ÿ”ง includes APIs for configuring and using Sources and Models.
    • MySQL protocol source to work with data from a MySQL protocol compatible db
    • shouldi example got a bandit operation which tells users not to install if
      there are more than 5 issues of high severity and confidence.
    • dev service got the ability to run a single operation in a standalone fashion.
    • ๐Ÿ“„ About page to docs.
    • Tensorflow DNNEstimator based regression model.

    ๐Ÿ”„ Changed

    • ๐Ÿ”‹ feature/codesec became it's own branch, binsec
    • 0๏ธโƒฃ BaseOrchestratorContext run_operations strict is default to true. With
      strict as true errors will be raised and not just logged.
    • MemoryInputNetworkContext got an sadd method which is shorthand for creating
      a MemoryInputSet with a StringInputSetContext.
    • MemoryOrchestrator basic_config method takes list of operations and optional
      config for them.
    • โšก๏ธ shouldi example uses updated MemoryOrchestrator.basic_config method and
      includes more explanation in comments.
    • CSVSource allows for setting the Repo's src_url from a csv column
    • util Entrypoint defines a new class for each loaded class and sets the
      ENTRY_POINT_LABEL parameter within the newly defined class.
    • ๐Ÿšš Tensorflow model removed usages of repo.classifications methods.
    • ๐Ÿ–จ Entrypoint prints traceback of loaded classes to standard error if they fail
      to load.
    • โšก๏ธ Updated Tensorflow model README.md to match functionality of
      DNNClassifierModel.
    • DNNClassifierModel no longer splits data for the user.
    • โšก๏ธ Update pip in Dockerfile.
    • ๐Ÿ“š Restructured documentation
    • Ran black on whole codebase, including all submodules
    • ๐Ÿ’… CI style check now checks whole codebase
    • ๐Ÿ”€ Merged HACKING.md into CONTRIBUTING.md
    • shouldi example runs bandit now in addition to safety
    • The way safety gets called
    • ๐Ÿ“š Switched documentation to Read The Docs theme
    • Models yield only a repo object instead of the value and confidence of the
      prediction as well. Models are not responsible for calling the predicted
      method on the repo. This will ease the process of making predict feature
      specific.
    • โšก๏ธ Updated Tensorflow model README.md to include usage of regression model

    ๐Ÿ›  Fixed

    • ๐Ÿ“„ Docs get version from dffml.version.VERSION.
    • FileSource zipfiles are wrapped with TextIOWrapper because CSVSource expects
      the underlying file object to return str instances rather than bytes.
    • โœ… FileSourceTest inherits from SourceTest and is used to test json and csv
      sources.
    • A temporary directory is used to replicate mktemp -u functionality so as to
      โœ… provide tests using a FileSource with a valid tempfile name.
    • Labels for JSON sources
    • Labels for CSV sources
    • ๐Ÿ“œ util.cli CMD's correcly set the description of subparsers instead of their
      help, they also accept the CLI_FORMATTER_CLASS property.
    • CSV source now has entry_point decoration
    • JSON source now has entry_point decoration
    • 0๏ธโƒฃ Strict flag in df.memory is now on by default
    • Dynamically created scikit models get config args correctly
    • ๐Ÿ“‡ Renamed DNNClassifierModelContext first init arg from config to features
    • BaseSource now has base_entry_point decoration

    โœ‚ Removed

    • Repo objects are no longer classification specific. Their classify,
      ๐Ÿšš classified, and classification methods were removed.
  • v0.2.1 Changes

    June 07, 2019

    [0.2.1] - 2019-06-07

    โž• Added

    • Definition spec field to specify a class representative of key value pairs for
      definitions with primitives which are dictionaries
    • ๐Ÿ“š Auto generation of documentation for operation implementations, models, and
      ๐Ÿ”ง sources. Generated docs include information on configuration options and
      inputs and outputs for operation implementations.
    • Async helpers got an aenter_stack method which creates and returns and
      contextlib.AsyncExitStack after entering all the context's passed to it.
    • Example of how to use Data Flow Facilitator / Orchestrator / Operations by
      writing a Python meta static analysis tool,
      shouldi

    ๐Ÿ”„ Changed

    • OperationImplementation add_label and add_orig_label methods now use op.name
      instead of ENTRY_POINT_ORIG_LABEL and ENTRY_POINT_NAME.
    • ๐Ÿ‘‰ Make output specs and remap arguments optional for Operations CLI commands.
    • ๐Ÿ”‹ Feature skeleton project is now operations skeleton project

    ๐Ÿ›  Fixed

    • MemoryOperationImplementationNetwork instantiates OperationImplementations
      using their withconfig() method.
    • MemorySource now decorated with entry_point
    • MemorySource takes arguments correctly via config_set and config_get
    • skel modules have long_description_content_type set to "text/markdown"
    • Base Orchestrator __aenter__ and __aexit__ methods were moved to the
      Memory Orchestrator because they are specific to that config.
    • Async helper aenter_stack uses inspect.isfunction so it will bind lambdas