make-xuml-repo


Namemake-xuml-repo JSON
Version 0.4.0 PyPI version JSON
download
home_page
SummaryGenerates a database from a set of *.xcm (executable class model) files
upload_time2023-09-26 00:36:19
maintainer
docs_urlNone
author
requires_python>=3.11
licenseMIT License Copyright (c) 2019-2023 Leon Starr Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords action language executable uml mbse xuml xtuml platform independent sysml
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Make an Executable UML Repository

Creates a model repository database from a Shlaer-Mellor Executable UML metamodel.

The latest [Shlaer-Mellor metamodel](https://github.com/modelint/shlaer-mellor-metamodel/wiki) is specified inside this package as a folder of .xcm (executable class model) files and a types.yaml file.

Each subsystem of the metamodel (class-attribute, state, etc) is defined in a single .xcm file all within a single foler. That folder also contains one types.yaml file specifying the db type (data type) to use for each metamodel attribute type. The db type 'string', for example, is associated with the `State Name` metamodel type.

We target the little known, but exceptionally useful TclRAL database. It's lean and mean and supports a true relational algebra as defined by [C.J. Date and Hugh Darwen](https://github.com/modelint/shlaer-mellor-metamodel/wiki/Resources#ttm-databases-types-and-the-relational-model-the-third-manifesto-cj-date-hugh-darwen----links-to-the-actual-book-as-a-downloadable-pdf). So we can use nested relational algrebra without any of that SQL mess. It is implemented in C and Tcl, but we provide a python front end called PyRAL to keep everything pythonic.

### Why you need this

You probably don't. What you want instead is the metamodel populator which does use this package.
It's not up on PyPI yet. Give me a couple of weeks and it should be here. I'll post a link when it's ready.

Though if you did want to fiddle with the metamodel, generate your own variation of it and such, this package
might come in handy.

### Installation

Create or use a python 3.11+ environment (early python versions may or may not work).

% pip install make-xuml-repo

At this point you can invoke the repository generator via the command line.

#### From the command line

With the default usage just type:

    % makexumlrepo

Two files will be created in this directory as a result. An mmdb.txt file and a mmclass_ntuples.py file.

The mmdb.txt file can be opened by TclRAL (via PyRAL) and it will establish an empty relvar per
metamodel class. You can use the previously mentioned populator, or your own, to load it up with
instances of your modeled domains.

The mmclass_ntuples.py file is a handy set of python named tuples. Each named tuple corresponds to a
metamodel class and provides a field for each attribute of that class. PyRal then uses this to insert one or
more tuples into the corresponding relvar.

In my case, I generate the two files and then copy them into my metamodel populator package.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "make-xuml-repo",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": "",
    "keywords": "action language,executable uml,mbse,xuml,xtuml,platform independent,sysml",
    "author": "",
    "author_email": "Leon Starr <leon_starr@modelint.com>",
    "download_url": "https://files.pythonhosted.org/packages/65/2f/5166bc69a69cded8f8b686091b0eec0cdb9d1bb8ea7c4ddd71abdbb004c3/make-xuml-repo-0.4.0.tar.gz",
    "platform": null,
    "description": "# Make an Executable UML Repository\n\nCreates a model repository database from a Shlaer-Mellor Executable UML metamodel.\n\nThe latest [Shlaer-Mellor metamodel](https://github.com/modelint/shlaer-mellor-metamodel/wiki) is specified inside this package as a folder of .xcm (executable class model) files and a types.yaml file.\n\nEach subsystem of the metamodel (class-attribute, state, etc) is defined in a single .xcm file all within a single foler. That folder also contains one types.yaml file specifying the db type (data type) to use for each metamodel attribute type. The db type 'string', for example, is associated with the `State Name` metamodel type.\n\nWe target the little known, but exceptionally useful TclRAL database. It's lean and mean and supports a true relational algebra as defined by [C.J. Date and Hugh Darwen](https://github.com/modelint/shlaer-mellor-metamodel/wiki/Resources#ttm-databases-types-and-the-relational-model-the-third-manifesto-cj-date-hugh-darwen----links-to-the-actual-book-as-a-downloadable-pdf). So we can use nested relational algrebra without any of that SQL mess. It is implemented in C and Tcl, but we provide a python front end called PyRAL to keep everything pythonic.\n\n### Why you need this\n\nYou probably don't. What you want instead is the metamodel populator which does use this package.\nIt's not up on PyPI yet. Give me a couple of weeks and it should be here. I'll post a link when it's ready.\n\nThough if you did want to fiddle with the metamodel, generate your own variation of it and such, this package\nmight come in handy.\n\n### Installation\n\nCreate or use a python 3.11+ environment (early python versions may or may not work).\n\n% pip install make-xuml-repo\n\nAt this point you can invoke the repository generator via the command line.\n\n#### From the command line\n\nWith the default usage just type:\n\n    % makexumlrepo\n\nTwo files will be created in this directory as a result. An mmdb.txt file and a mmclass_ntuples.py file.\n\nThe mmdb.txt file can be opened by TclRAL (via PyRAL) and it will establish an empty relvar per\nmetamodel class. You can use the previously mentioned populator, or your own, to load it up with\ninstances of your modeled domains.\n\nThe mmclass_ntuples.py file is a handy set of python named tuples. Each named tuple corresponds to a\nmetamodel class and provides a field for each attribute of that class. PyRal then uses this to insert one or\nmore tuples into the corresponding relvar.\n\nIn my case, I generate the two files and then copy them into my metamodel populator package.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2019-2023 Leon Starr  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Generates a database from a set of *.xcm (executable class model) files",
    "version": "0.4.0",
    "project_urls": {
        "documentation": "https://github.com/modelint/make-xuml-repo/wiki",
        "repository": "https://github.com/modelint/make-xuml-repo"
    },
    "split_keywords": [
        "action language",
        "executable uml",
        "mbse",
        "xuml",
        "xtuml",
        "platform independent",
        "sysml"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1398d53ee6f94180e4f9a1633cab95f2f0be7f320e53ed69a86661b52d32ea5b",
                "md5": "b4857507b683b01dffd496734775cc02",
                "sha256": "6b5a6b2bde3eeff0fce592d4af6367208864103d034682132e638c7074447a87"
            },
            "downloads": -1,
            "filename": "make_xuml_repo-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b4857507b683b01dffd496734775cc02",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 32733,
            "upload_time": "2023-09-26T00:36:17",
            "upload_time_iso_8601": "2023-09-26T00:36:17.452245Z",
            "url": "https://files.pythonhosted.org/packages/13/98/d53ee6f94180e4f9a1633cab95f2f0be7f320e53ed69a86661b52d32ea5b/make_xuml_repo-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "652f5166bc69a69cded8f8b686091b0eec0cdb9d1bb8ea7c4ddd71abdbb004c3",
                "md5": "15b1dc638d0da2fd00fe38309542872f",
                "sha256": "c7d52355b7f7c12b6142fbc9b1092306a0ce97252c5e2112fa2d1d3ba941e673"
            },
            "downloads": -1,
            "filename": "make-xuml-repo-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "15b1dc638d0da2fd00fe38309542872f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 24876,
            "upload_time": "2023-09-26T00:36:19",
            "upload_time_iso_8601": "2023-09-26T00:36:19.366032Z",
            "url": "https://files.pythonhosted.org/packages/65/2f/5166bc69a69cded8f8b686091b0eec0cdb9d1bb8ea7c4ddd71abdbb004c3/make-xuml-repo-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-26 00:36:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "modelint",
    "github_project": "make-xuml-repo",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "make-xuml-repo"
}
        
Elapsed time: 0.12571s