A-GIS


NameA-GIS JSON
Version 0.8.1 PyPI version JSON
download
home_page
SummaryFunctional python that shields users from breaking changes.
upload_time2024-02-27 03:11:33
maintainer
docs_urlNone
author
requires_python>=3.10
licenseThis is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. 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 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. For more information, please refer to <https://unlicense.org>
keywords art ai
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # A_GIS Python Package

```python
pip install A_GIS
```

Pronounced with a long "a" like AEGIS, this is a package for functional python. 

## Distill and recompose

Checkout out notebooks/roundtrip.ipynb for an example of round-tripping. 

In the `__A_GIS__` directory we can have the segmented data
so that AI can operate on different parts more efficiently. 

The basic sequence is

1. raw function only (8 lines or less ideally) 
2. add comments and spacing
3. add docstring
4. send through formatter
5. this is now a complete function like someone would want to see in a code base

To split it up again we go in reverse.

6. remove docstring
7. remove comments and spacing (save in file)
8. save raw function

Now you can see easily if the raw function changed. Once this iteration
converges, the diff should be zero.

This process has advantages in that we can isolate the docstring and
work on making that beautiful. 

It could get examples, and all kinds of crazy awesome reformatting
as its own document. Then we can reapply comments to the raw source,
THEN the docstring, then format. We could send this to an AI now to
create better comments and then ONLY update the comments file. I think
the comments are somewhat dependent on the
docstring so it's nice to have this flow of regenerating comments
assuming a certain docstring and visibility of the whole file. 

After splitting back out and saving the raw function, you can see (with
git diff for example), if the AI changed the execution of the code. One
could imagine asking the AI to split a function into several that don't
exceed e.g. 9 lines for example.

This scheme gives us a way to then split those functions and send them
to their place on the file system.

By going to such small granularity, we should be able to fit in many AIs
token counts and they should be able to design tests and examples much
easier. 

We could also, based on similarity metrics for the raw functions, make
sure AI aren't creating a bunch of extra functions. I.e. if they create
a new one that has high similarity to an existing one, we could ask it
to use the existing one instead, or propose modifications to the existing 
one, e.g. optional arguments, that would make it work. 

It would be interesting to see what an AI would generate in terms of a
code base with this approach. It should arrive at lots of small
functions that are basically idioms, like A_GIS.File.read().

You should be able to apply this approach hierarchically to handle tests
for example, each test a function. This should be a totally functional
based system. Inside the functions we may want helper classes,
especially for testing. We should start
these names with an `_` to make sure they do not appear in the public
API.

Finally, it should be possible to hash the raw function content like
IPFS and provide these in a distributed computing framework, where you
basically call a function by the hash, `output = A_GIS.<hash>(input)`
which ensures you get a specific version of that function even across
different versions of `A_GIS`. All `A_GIS` functions should require
keywords which may help with handling serialized data in dictionaries
and such.


## Nice Tree Output

```
tree -I *.pyc -I __A_GIS__ -I __init__.py -I __pycache__ -I tests A_GIS/
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "A-GIS",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "art,AI",
    "author": "",
    "author_email": "AEGIS 001 <a-gis-001@proton.me>",
    "download_url": "https://files.pythonhosted.org/packages/9c/57/da33e3a0188b45f3a413594c1edbbc8e3cd66926f4e4767cc42c4ee99061/A_GIS-0.8.1.tar.gz",
    "platform": null,
    "description": "# A_GIS Python Package\n\n```python\npip install A_GIS\n```\n\nPronounced with a long \"a\" like AEGIS, this is a package for functional python. \n\n## Distill and recompose\n\nCheckout out notebooks/roundtrip.ipynb for an example of round-tripping. \n\nIn the `__A_GIS__` directory we can have the segmented data\nso that AI can operate on different parts more efficiently. \n\nThe basic sequence is\n\n1. raw function only (8 lines or less ideally) \n2. add comments and spacing\n3. add docstring\n4. send through formatter\n5. this is now a complete function like someone would want to see in a code base\n\nTo split it up again we go in reverse.\n\n6. remove docstring\n7. remove comments and spacing (save in file)\n8. save raw function\n\nNow you can see easily if the raw function changed. Once this iteration\nconverges, the diff should be zero.\n\nThis process has advantages in that we can isolate the docstring and\nwork on making that beautiful. \n\nIt could get examples, and all kinds of crazy awesome reformatting\nas its own document. Then we can reapply comments to the raw source,\nTHEN the docstring, then format. We could send this to an AI now to\ncreate better comments and then ONLY update the comments file. I think\nthe comments are somewhat dependent on the\ndocstring so it's nice to have this flow of regenerating comments\nassuming a certain docstring and visibility of the whole file. \n\nAfter splitting back out and saving the raw function, you can see (with\ngit diff for example), if the AI changed the execution of the code. One\ncould imagine asking the AI to split a function into several that don't\nexceed e.g. 9 lines for example.\n\nThis scheme gives us a way to then split those functions and send them\nto their place on the file system.\n\nBy going to such small granularity, we should be able to fit in many AIs\ntoken counts and they should be able to design tests and examples much\neasier. \n\nWe could also, based on similarity metrics for the raw functions, make\nsure AI aren't creating a bunch of extra functions. I.e. if they create\na new one that has high similarity to an existing one, we could ask it\nto use the existing one instead, or propose modifications to the existing \none, e.g. optional arguments, that would make it work. \n\nIt would be interesting to see what an AI would generate in terms of a\ncode base with this approach. It should arrive at lots of small\nfunctions that are basically idioms, like A_GIS.File.read().\n\nYou should be able to apply this approach hierarchically to handle tests\nfor example, each test a function. This should be a totally functional\nbased system. Inside the functions we may want helper classes,\nespecially for testing. We should start\nthese names with an `_` to make sure they do not appear in the public\nAPI.\n\nFinally, it should be possible to hash the raw function content like\nIPFS and provide these in a distributed computing framework, where you\nbasically call a function by the hash, `output = A_GIS.<hash>(input)`\nwhich ensures you get a specific version of that function even across\ndifferent versions of `A_GIS`. All `A_GIS` functions should require\nkeywords which may help with handling serialized data in dictionaries\nand such.\n\n\n## Nice Tree Output\n\n```\ntree -I *.pyc -I __A_GIS__ -I __init__.py -I __pycache__ -I tests A_GIS/\n```\n",
    "bugtrack_url": null,
    "license": "This is free and unencumbered software released into the public domain.  Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.  In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.  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 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.  For more information, please refer to <https://unlicense.org> ",
    "summary": "Functional python that shields users from breaking changes.",
    "version": "0.8.1",
    "project_urls": {
        "bug-tracker": "https://github.com/a-gis-001/a-gis/issues",
        "documentation": "https://a-gis.readthedocs.io",
        "source": "https://github.com/a-gis-001/a-gis"
    },
    "split_keywords": [
        "art",
        "ai"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "28f32bfb9bb25e7084cb552cf374bcc7059000d2d4772b4afad72ec1021fc718",
                "md5": "43eb4d0c5c93acb0b4a3e6e1571401f9",
                "sha256": "68f4a3645fe6711c1815394f2063b605f5561bf90d90e9b6139449880661bfd9"
            },
            "downloads": -1,
            "filename": "A_GIS-0.8.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "43eb4d0c5c93acb0b4a3e6e1571401f9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 35668,
            "upload_time": "2024-02-27T03:11:31",
            "upload_time_iso_8601": "2024-02-27T03:11:31.887741Z",
            "url": "https://files.pythonhosted.org/packages/28/f3/2bfb9bb25e7084cb552cf374bcc7059000d2d4772b4afad72ec1021fc718/A_GIS-0.8.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c57da33e3a0188b45f3a413594c1edbbc8e3cd66926f4e4767cc42c4ee99061",
                "md5": "cbb87d1a530a42b7681ff6af22c0e100",
                "sha256": "2d555b9aa45aaf9addee2b9a67ecfe830a8e62cb2e55cebda46fb7ce871656ac"
            },
            "downloads": -1,
            "filename": "A_GIS-0.8.1.tar.gz",
            "has_sig": false,
            "md5_digest": "cbb87d1a530a42b7681ff6af22c0e100",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 22820,
            "upload_time": "2024-02-27T03:11:33",
            "upload_time_iso_8601": "2024-02-27T03:11:33.631158Z",
            "url": "https://files.pythonhosted.org/packages/9c/57/da33e3a0188b45f3a413594c1edbbc8e3cd66926f4e4767cc42c4ee99061/A_GIS-0.8.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-27 03:11:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "a-gis-001",
    "github_project": "a-gis",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "a-gis"
}
        
Elapsed time: 0.56882s