{ "info": { "author": "Davis Architecture Research Group (DArchR)", "author_email": "jlowepower@ucdavis.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3", "Topic :: System :: Hardware" ], "description": "# gem5art artifact package\n\nThis package contains the `Artifact` type and an artifact database for use with [gem5art](http://www.gem5.org/documentation/gem5art/).\n\nPlease cite the [gem5art paper](https://arch.cs.ucdavis.edu/papers/2021-3-28-gem5art) when using the gem5art packages.\nThis documentation can be found on the [gem5 website](http://www.gem5.org/documentation/gem5art/)\n\n## gem5art artifacts\n\nAll unique objects used during gem5 experiments are termed \"artifacts\" in gem5art.\nExamples of artifacts include: gem5 binary, gem5 source code repo, Linux kernel source repo, linux binary, disk image, and packer binary (used to build the disk image).\nThe goal of this infrastructure is to keep a record of all the artifacts used in a particular experiment and to return the set of used artifacts when the same experiment needs to be performed in the future.\n\nThe description of an artifact serves as the documentation of how that artifact was created.\nOne of the goals of gem5art is for these artifacts to be self contained.\nWith just the metadata stored with the artifact a third party should be able to perfectly reproduce the artifact.\n(We are still working toward this goal.\nFor instance, we are looking into using docker to create artifacts to separate artifact creation from the host platform its run on.)\n\nEach artifact is characterized by a set of attributes, described below:\n\n- command: command used to build this artifact\n- typ: type of the artifact e.g. binary, git repo etc.\n- name: name of the artifact\n- cwd: current working directory, where the command to build the artifact is run\n- path: actual path of the location of the artifact\n- inputs: a list of the artifacts used to build the current artifact\n- documentation: a docstring explaining the purpose of the artifact and any other useful information that can help to reproduce the artifact\n\nAdditionally, each artifact also has the following implicit information.\n\n- hash: an MD5 hash for a binary artifact or a git hash for a git artifact\n- time: time of the creation of an artifact\n- id: a UUID associated with the artifact\n- git: a dictionary containing the origin, current commit and the repo name for a git artifact (will be an empty dictionary for other types of artifacts)\n\nThese attribute are not specified by the user, but are generated by gem5art automatically (when the `Artifact` object is created for the first time).\n\nAn example of how a user would create a gem5 binary artifact using gem5art is shown below.\nIn this example, the type, name, and documentation are up to the user of gem5art.\nYou're encouraged to use names that are easy to remember when you later query the database.\nThe documentation attribute should be used to completely describe the artifact that you are saving.\n\n```python\ngem5_binary = Artifact.registerArtifact(\n command = 'scons build/X86/gem5.opt',\n typ = 'gem5 binary',\n name = 'gem5',\n cwd = 'gem5/',\n path = 'gem5/build/X86/gem5.opt',\n inputs = [gem5_repo,],\n documentation = '''\n Default gem5 binary compiled for the X86 ISA.\n This was built from the main gem5 repo (gem5.googlesource.com) without\n any modifications. We recently updated to the current gem5 master\n which has a fix for memory channel address striping.\n '''\n)\n```\n\nAnother goal of gem5art is to enable sharing of artifacts among multiple users, which is achieved through the use of the centralized database.\nBasically, whenever a user tries to create a new artifact, the database is searched to find if the same artifact exists there.\nIf it does, the user can download the matching artifact for use.\nOtherwise, the newly created artifact is uploaded to the database for later use.\nThe use of database also avoids running identical experiments (by generating an error message if a user tries to execute exact run which already exists in the database).\n\n### Creating artifacts\n\nTo create an `Artifact`, you must use [`registerArtifact`](artifacts.html#gem5art.artifact.artifact.Artifact.registerArtifact) as shown in the above example as well.\nThis is a factory method which will initially create the artifact.\n\nWhen calling `registerArtifact`, the artifact will automatically be added to the database.\nIf it already exists, a pointer to that artifact will be returned.\n\nThe parameters to the `registerArtifact` function are meant for *documentation*, not as explicit directions to create the artifact from scratch.\nIn the future, this feature may be added to gem5art.\n\nNote: While creating new artifacts, warning messages showing that certain attributes (except hash and id) of two artifacts don't match (when artifact similarity is checked in the code) might appear. Users should make sure that they understand the reasons of any such warnings.\n\n### Using artifacts from the database\n\nYou can create an artifact with just a UUID if it is already stored in the database.\nThe behavior will be the same as when creating an artifact that already exists.\nAll of the properties of the artifact will be populated from the database.\n\n## ArtifactDB\n\nThe particular database used in this work is [MongoDB](https://www.mongodb.com/).\nWe use MongoDB since it can easily store large files (e.g., disk images), is tightly integrated with Python through [pymongo](https://api.mongodb.com/python/current/), and has an interface that is flexible as the needs of gem5art changes.\n\nCurrently, it's required to run a database to use gem5.\nHowever, we are planning on changing this default to allow gem5art to be used standalone as well.\n\ngem5art allows you to connect to any database, but by default assumes there is a MongoDB instance running on the localhost at `mongo://localhost:27017`.\nYou can use the environment variable `GEM5ART_DB` to specify the default database to connect when running simple scripts.\nAdditionally, you can specify the location of the database when calling `getDBConnection` in your scripts.\n\nIn case no database exists or a user want their own database, you can create a new database by creating a new directory and running the mongodb docker image.\nSee the [MongoDB docker documentation](https://hub.docker.com/_/mongo) or the [MongoDB documentation](https://docs.mongodb.com/) for more information.\n\n```sh\n`docker run -p 27017:27017 -v :/data/db --name mongo- -d mongo`\n```\n\nThis uses the official [MongoDB Docker image](https://hub.docker.com/_/mongo) to run the database at the default port on the localhost.\nIf the Docker container is killed, it can be restarted with the same command line and the database should be consistent.\n\n### Connecting to an existing database\n\nBy default, gem5art will assume the database is running at `mongodb://localhost:27017`, which is MongoDB's default on the localhost.\n\nThe environment variable `GEM5ART_DB` can override this default.\n\nOtherwise, to programmatically set a database URI when using gem5art, you can pass a URI to the `getDatabaseConnection` function.\n\nCurrently, gem5art only supports MongoDB database backends, but extending this to other databases should be straightforward.\n\n### Searching the Database\n\ngem5art provides a few convience functions for searching and accessing the database.\nThese functions can be found in `artifact.common_queries`.\n\nSpecifically, we provide the following functions:\n\n- `getByName`: Returns all objects mathching `name` in database.\n- `getDiskImages`: Returns a generator of disk images (type = disk image).\n- `getLinuxBinaries`: Returns a generator of Linux kernel binaries (type = kernel).\n- `getgem5Binaries`: Returns a generator of gem5 binaries (type = gem5 binary).\n\n### Downloading from the Database\n\nYou can also download a file associated with an artifact using functions provided by gem5art. A good way to search and download items from the database is by using the Python interactive shell.\nYou can search the database with the functions provided by the `artifact` module (e.g., [`getByName`](artifacts.html#gem5art.artifact.artifact.getByName), [`getByType`](artifacts.html#gem5art.artifact.artifact.getByType), etc.).\nThen, once you've found the ID of the artifact you'd like to download, you can call [`downloadFile`](artifacts.html#gem5art.artifact._artifactdb.ArtifactDB.downloadFile).\nSee the example below.\n\n```sh\n$ python\nPython 3.6.8 (default, Oct 7 2019, 12:59:55)\n[GCC 8.3.0] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> from gem5art.artifact import *\n>>> db = getDBConnection()\n>>> for i in getDiskImages(db, limit=2): print(i)\n...\nubuntu\n id: d4a54de8-3a1f-4d4d-9175-53c15e647afd\n type: disk image\n path: disk-image/ubuntu-image/ubuntu\n inputs: packer:fe8ba737-ffd4-44fa-88b7-9cd072f82979, fs-x86-test:94092971-4277-4d38-9e4a-495a7119a5e5, m5:69dad8b1-48d0-43dd-a538-f3196a894804\n Ubuntu with m5 binary installed and root auto login\nubuntu\n id: c54b8805-48d6-425d-ac81-9b1badba206e\n type: disk image\n path: disk-image/ubuntu-image/ubuntu\n inputs: packer:fe8ba737-ffd4-44fa-88b7-9cd072f82979, fs-x86-test:5bfaab52-7d04-49f2-8fea-c5af8a7f34a8, m5:69dad8b1-48d0-43dd-a538-f3196a894804\n Ubuntu with m5 binary installed and root auto login\n>>> for i in getLinuxBinaries(db, limit=2): print(i)\n...\n\nvmlinux-5.2.3\n id: 8cfd9fbe-24d0-40b5-897e-beca3df80dd2\n type: kernel\n path: linux-stable/vmlinux-5.2.3\n inputs: fs-x86-test:94092971-4277-4d38-9e4a-495a7119a5e5, linux-stable:25feca9a-3642-458e-a179-f3705266b2fe\n Kernel binary for 5.2.3 with simple config file\nvmlinux-5.2.3\n id: 9721d8c9-dc41-49ba-ab5c-3ed169e24166\n type: kernel\n path: linux-stable/vmlinux-5.2.3\n inputs: npb:85e6dd97-c946-4596-9b52-0bb145810d68, linux-stable:25feca9a-3642-458e-a179-f3705266b2fe\n Kernel binary for 5.2.3 with simple config file\n>>> from uuid import UUID\n>>> db.downloadFile(UUID('8cfd9fbe-24d0-40b5-897e-beca3df80dd2'), 'linux-stable/vmlinux-5.2.3')\n```\n\nFor another example, assume there is a disk image named `npb` (containing [NAS Parallel](https://www.nas.nasa.gov/) Benchmarks) in your database and you want to download the disk image to your local directory. You can do the following to download the disk image:\n\n```python\nimport gem5art.artifact\n\ndb = gem5art.artifact.getDBConnection()\n\ndisks = gem5art.artifact.getByName(db, 'npb')\n\nfor disk in disks:\n if disk.type == 'disk image' and disk.documentation == 'npb disk image created on Nov 20':\n db.downloadFile(disk._id, 'npb')\n```\n\nHere, we assume that there can be multiple disk images/artifacts with the name `npb` and we are only interested in downloading the npb disk image with a particular documentation ('npb disk image created on Nov 20'). Also, note that there is not a single way to download files from the database (although they will eventually use the downloadFile function).\n\nThe dual of the [downloadFile](artifacts.html#gem5art.artifact._artifactdb.ArtifactDB.downloadFile) method used above is [upload](artifacts.html#gem5art.artifact._artifactdb.ArtifactDB.upload).\n\n#### Database schema\n\nAlternative, you can use the pymongo Python module or the mongodb command line interface to interact with the database.\nSee the [MongoDB documentation](https://docs.mongodb.com/) for more information on how to query the MongoDB database.\n\ngem5art has two collections.\n`artifact_database.artifacts` stores all of the metadata for the artifacts and `artifact_database.fs` is a [GridFS](https://docs.mongodb.com/manual/core/gridfs/) store for all of the files.\nThe files in the GridFS use the same UUIDs as the Artifacts as their primary keys.\n\nYou can list all of the details of all of the artifacts by running the following in Python.\n\n```python\n#!/usr/bin/env python3\n\nfrom pymongo import MongoClient\n\ndb = MongoClient().artifact_database\nfor i in db.artifacts.find():\n print(i)\n```\n\ngem5art also provides a few methods to search the database for artifacts of a particular type or name. For example, to find all disk images in a database you can do the following:\n\n```python\nimport gem5art.artifact\ndb = gem5art.artifact.getDBConnection('mongo://localhost')\nfor i in gem5art.artifact.getDiskImages(db):\n print(i)\n```\n\nOther similar methods include: `getLinuxBinaries()`, `getgem5Binaries()`\n\nYou can use getByName() method to search database for artifacts using the name attribute. For example, to search for gem5 named artifacts:\n\n```python\nimport gem5art.artifact\ndb = gem5art.artifact.getDBConnection('mongo://localhost')\nfor i in gem5art.artifact.getByName(db, \"gem5\"):\n print(i)\n```\n\n## Artifacts API Documentation\n\n```eval_rst\nArtifact Module\n--------\n.. automodule:: gem5art.artifact\n :members:\n\nArtifact\n--------\n.. automodule:: gem5art.artifact.artifact\n :members:\n :undoc-members:\n\nArtifact\n--------\n.. automodule:: gem5art.artifact.artifact.Artifact\n :members:\n :undoc-members:\n\nHelper Functions for Common Queries\n-----------------------------------\n.. automodule:: gem5art.artifact.common_queries\n :members:\n :undoc-members:\n\nAritifactDB\n-----------\nThis is mostly internal.\n\n.. automodule:: gem5art.artifact._artifactdb\n :members:\n :undoc-members:\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/darchr/gem5art", "keywords": "simulation architecture gem5", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "gem5art-artifact", "package_url": "https://pypi.org/project/gem5art-artifact/", "platform": "", "project_url": "https://pypi.org/project/gem5art-artifact/", "project_urls": { "Bug Reports": "https://github.com/darchr/gem5art/issues", "Documentation": "https://gem5art.readthedocs.io/en/latest/", "Homepage": "https://github.com/darchr/gem5art", "Source": "https://github.com/darchr/gem5art" }, "release_url": "https://pypi.org/project/gem5art-artifact/1.3.1/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Artifacts for gem5art", "version": "1.3.1", "yanked": false, "yanked_reason": null }, "last_serial": 9620369, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "9fa305cd71c1b1440276381b1363a7a2", "sha256": "b25e5ade45abdba9238e3abdd20d47c5ce70ded1d4e61b7ad1e5ada4b154c3f1" }, "downloads": -1, "filename": "gem5art-artifact-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9fa305cd71c1b1440276381b1363a7a2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1150, "upload_time": "2019-10-21T18:12:56", "upload_time_iso_8601": "2019-10-21T18:12:56.080891Z", "url": "https://files.pythonhosted.org/packages/71/9a/b859adc9d87b37b9aa0bc908a1f64ee469263048a85e3267e14058681429/gem5art-artifact-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c0c7a90070d1ba34224719d64293377b", "sha256": "0b8047efa82ba92d3c9bb160ce273e695c0fbd12163175c5926ab15fd7d434b6" }, "downloads": -1, "filename": "gem5art-artifact-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c0c7a90070d1ba34224719d64293377b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1514, "upload_time": "2019-10-21T18:12:58", "upload_time_iso_8601": "2019-10-21T18:12:58.584647Z", "url": "https://files.pythonhosted.org/packages/ac/ec/0f3cc5311d476bae00a9eb156606f4ede9c959e6f4fa2d3ddcca7efc3123/gem5art-artifact-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "aad4b03fe07ee90a3dac7542f0cffcdd", "sha256": "20a3d5b82d182803c89272e5e36a9d933c5f0c62f23e3e3cb094c289861cfbba" }, "downloads": -1, "filename": "gem5art-artifact-0.1.3.tar.gz", "has_sig": false, "md5_digest": "aad4b03fe07ee90a3dac7542f0cffcdd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1535, "upload_time": "2019-10-21T18:13:00", "upload_time_iso_8601": "2019-10-21T18:13:00.429378Z", "url": "https://files.pythonhosted.org/packages/bc/04/33ad484cfeb21b2c9f1e272adc3645cd1cd3147a336362bf5e3c42257765/gem5art-artifact-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b5aa741b10d66f437c3dc00c6733924d", "sha256": "96b102a486dfcf34f5f1be4db2ea0b889766d52767b5636801149bad620e6a7e" }, "downloads": -1, "filename": "gem5art-artifact-0.1.4.tar.gz", "has_sig": false, "md5_digest": "b5aa741b10d66f437c3dc00c6733924d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1533, "upload_time": "2019-10-21T19:55:35", "upload_time_iso_8601": "2019-10-21T19:55:35.194781Z", "url": "https://files.pythonhosted.org/packages/eb/4b/673c420a0b0b41981cade522109ccf976843132e7e014e3c0dde9c97f103/gem5art-artifact-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b6cf65d0290a0746deaa73c0b38995a2", "sha256": "184537b0ea0380772fec08763aaa04e22325ba3ecf70f4e21c6436e90aed09e2" }, "downloads": -1, "filename": "gem5art-artifact-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b6cf65d0290a0746deaa73c0b38995a2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1544, "upload_time": "2019-10-24T23:39:21", "upload_time_iso_8601": "2019-10-24T23:39:21.997188Z", "url": "https://files.pythonhosted.org/packages/f1/29/33b3565a830f80ac68fcbad430f4eb04336b7bd8a071e60d05f3e864ad62/gem5art-artifact-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "20d302cf7340d504f38936b73e07e83f", "sha256": "40b92e9bdada17203de5b518214d1719d61d8ec2c9f484d89a1d6f2bf1ece944" }, "downloads": -1, "filename": "gem5art-artifact-0.2.1.tar.gz", "has_sig": false, "md5_digest": "20d302cf7340d504f38936b73e07e83f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5612, "upload_time": "2019-10-28T21:06:35", "upload_time_iso_8601": "2019-10-28T21:06:35.461767Z", "url": "https://files.pythonhosted.org/packages/09/a8/80ca84fde218b3bf23b2a54ab27c2e57e9edf4147bb00a21f4770762073a/gem5art-artifact-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "adc94bbb3090cdd7433d46b4a5a2a855", "sha256": "6e3f39c24fb4c5c72987fe33ef287cc09b0af5cec1d741d65c207c32bfa19e0e" }, "downloads": -1, "filename": "gem5art-artifact-0.3.0.tar.gz", "has_sig": false, "md5_digest": "adc94bbb3090cdd7433d46b4a5a2a855", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6372, "upload_time": "2019-11-10T18:24:03", "upload_time_iso_8601": "2019-11-10T18:24:03.577113Z", "url": "https://files.pythonhosted.org/packages/29/56/cbff0124e63d1f73ec8db663f3b9c426968c92f3494c1f47f250585f4a36/gem5art-artifact-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "add83711771fea02649342026abe500b", "sha256": "02bb06f85111decbc6b417bf19a0586befd360cb2d060b8e034f2a404ef726bd" }, "downloads": -1, "filename": "gem5art-artifact-0.3.1.tar.gz", "has_sig": false, "md5_digest": "add83711771fea02649342026abe500b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6378, "upload_time": "2019-11-20T04:04:10", "upload_time_iso_8601": "2019-11-20T04:04:10.864532Z", "url": "https://files.pythonhosted.org/packages/3d/b4/279afe4135b3f6d4fefd0983d13e5bc0cf87de1c76460bd39b7bd4ff9722/gem5art-artifact-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d2e667810b5d3dbfb9c4028980526493", "sha256": "12db8d6c4a617a18ecd780538926a08e40129006aa0489eee709afe899ff7342" }, "downloads": -1, "filename": "gem5art-artifact-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d2e667810b5d3dbfb9c4028980526493", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6383, "upload_time": "2019-12-11T05:22:35", "upload_time_iso_8601": "2019-12-11T05:22:35.807664Z", "url": "https://files.pythonhosted.org/packages/82/cd/202b261c6ce2c9a224c9562161118a8a30f01fd5f3b4b53d006043b079e9/gem5art-artifact-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "8360c3b18ab8de8321d97a76244d96ef", "sha256": "dd324a8fe2ad6a2946bf3d80290eaf44e2d4dbf0b95f5418c2cbab073315e2ce" }, "downloads": -1, "filename": "gem5art-artifact-0.4.1.tar.gz", "has_sig": false, "md5_digest": "8360c3b18ab8de8321d97a76244d96ef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6380, "upload_time": "2019-12-12T21:53:06", "upload_time_iso_8601": "2019-12-12T21:53:06.163544Z", "url": "https://files.pythonhosted.org/packages/2f/37/ef3583482d31ce5d3a8251cc26c01d8b830df06cc155f5ca03c34e49e0dd/gem5art-artifact-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "1c65a731f2d5108859bafb2118e75194", "sha256": "a32430279f2cc4cd5ff8d953b8741d7ba709cb19ff0d7584db5cd725a833f174" }, "downloads": -1, "filename": "gem5art-artifact-1.0.0.tar.gz", "has_sig": false, "md5_digest": "1c65a731f2d5108859bafb2118e75194", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7259, "upload_time": "2020-02-15T08:08:10", "upload_time_iso_8601": "2020-02-15T08:08:10.741480Z", "url": "https://files.pythonhosted.org/packages/ea/57/42a465e93717750dcaa530202ec95dc2a7aca15d1c1257cd2289c0b2c773/gem5art-artifact-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "27b048fe2698dbb9021036c82e6dd6d7", "sha256": "2206bfac35fb15333e38a143766657eacca84c42b816e7b354bfbd4c935fd9e9" }, "downloads": -1, "filename": "gem5art-artifact-1.0.1.tar.gz", "has_sig": false, "md5_digest": "27b048fe2698dbb9021036c82e6dd6d7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7299, "upload_time": "2020-02-18T20:24:53", "upload_time_iso_8601": "2020-02-18T20:24:53.250006Z", "url": "https://files.pythonhosted.org/packages/cf/ce/2f2f9405fe78a0b4bd535efcb5f9520393b4b502c0ed16488e37e470825a/gem5art-artifact-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b0bef5954c5edb5c99eb08bf328e777a", "sha256": "41b703764e618bb32c648a6a31381a895a1832f34adc7d752fc91d66b285ce15" }, "downloads": -1, "filename": "gem5art-artifact-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b0bef5954c5edb5c99eb08bf328e777a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7300, "upload_time": "2020-02-22T22:04:57", "upload_time_iso_8601": "2020-02-22T22:04:57.579026Z", "url": "https://files.pythonhosted.org/packages/7f/18/c86bf62e6d9c3e66e249c6da1f33e63dcfd836a4c21ea4d9e3ed1366d98e/gem5art-artifact-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "2f45211f46748fda36bdd7b3d3a11e54", "sha256": "307258313833187d45ea2dc45931abf7d07ba540ebe909a69c2812eb33340c0a" }, "downloads": -1, "filename": "gem5art-artifact-1.2.0.tar.gz", "has_sig": false, "md5_digest": "2f45211f46748fda36bdd7b3d3a11e54", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7304, "upload_time": "2020-08-07T20:02:47", "upload_time_iso_8601": "2020-08-07T20:02:47.364328Z", "url": "https://files.pythonhosted.org/packages/37/ef/341470acbce2516e7d5ed13bd8067940c5e4cd23dbcdeb1239267f5a7377/gem5art-artifact-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "410bfab00ed63896d647d7e2d4d063ec", "sha256": "ebed29dff86b4c66a25531b8815f69e04c1ce2739610358b8c8adeaa175a689c" }, "downloads": -1, "filename": "gem5art-artifact-1.3.0.tar.gz", "has_sig": false, "md5_digest": "410bfab00ed63896d647d7e2d4d063ec", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8178, "upload_time": "2020-10-06T15:38:47", "upload_time_iso_8601": "2020-10-06T15:38:47.938136Z", "url": "https://files.pythonhosted.org/packages/53/d3/6c004842028097bdd0b99023ea05e902f528f67385d7e66a4e891b6b94fa/gem5art-artifact-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "070758dc6968d00500b1c5f97dd605aa", "sha256": "b9d81fd9b2d08ebc851a4775e41acd9561d0c09f264e6f2fc0aea7ec05a157e7" }, "downloads": -1, "filename": "gem5art-artifact-1.3.1.tar.gz", "has_sig": false, "md5_digest": "070758dc6968d00500b1c5f97dd605aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17199, "upload_time": "2021-03-03T15:29:01", "upload_time_iso_8601": "2021-03-03T15:29:01.819133Z", "url": "https://files.pythonhosted.org/packages/01/3d/f3ea2e30df13fbfd5ec61d0c48d9470452457ee5f998cb8e7a50a9b7418d/gem5art-artifact-1.3.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "070758dc6968d00500b1c5f97dd605aa", "sha256": "b9d81fd9b2d08ebc851a4775e41acd9561d0c09f264e6f2fc0aea7ec05a157e7" }, "downloads": -1, "filename": "gem5art-artifact-1.3.1.tar.gz", "has_sig": false, "md5_digest": "070758dc6968d00500b1c5f97dd605aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17199, "upload_time": "2021-03-03T15:29:01", "upload_time_iso_8601": "2021-03-03T15:29:01.819133Z", "url": "https://files.pythonhosted.org/packages/01/3d/f3ea2e30df13fbfd5ec61d0c48d9470452457ee5f998cb8e7a50a9b7418d/gem5art-artifact-1.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }