{"id":19866547,"url":"https://github.com/anyoptimization/pyrecorder","last_synced_at":"2025-07-05T16:33:01.939Z","repository":{"id":93161827,"uuid":"247072637","full_name":"anyoptimization/pyrecorder","owner":"anyoptimization","description":"Recording Made Easy","archived":false,"fork":false,"pushed_at":"2021-09-15T13:18:04.000Z","size":5310,"stargazers_count":12,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T23:13:31.946Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anyoptimization.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-13T13:03:15.000Z","updated_at":"2025-03-03T17:06:41.000Z","dependencies_parsed_at":"2023-05-04T15:01:23.967Z","dependency_job_id":null,"html_url":"https://github.com/anyoptimization/pyrecorder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyoptimization%2Fpyrecorder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyoptimization%2Fpyrecorder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyoptimization%2Fpyrecorder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anyoptimization%2Fpyrecorder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anyoptimization","download_url":"https://codeload.github.com/anyoptimization/pyrecorder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251998046,"owners_count":21677915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T15:26:12.575Z","updated_at":"2025-05-02T06:30:37.254Z","avatar_url":"https://github.com/anyoptimization.png","language":"Python","readme":"|travis| |python| |license|\n\n\n.. |travis| image:: https://travis-ci.com/julesy89/pyrecorder.svg?branch=master\n   :alt: build status\n   :target: https://travis-ci.com/julesy/pyrecorder\n\n.. |python| image:: https://img.shields.io/badge/python-3.9-blue.svg\n   :alt: python 3.6\n\n.. |license| image:: https://img.shields.io/badge/license-apache-orange.svg\n   :alt: license apache\n   :target: https://www.apache.org/licenses/LICENSE-2.0\n\n\n.. |logo| image:: https://github.com/anyoptimization/pyrecorder/blob/master/docs/source/_static/pyrecorder.png\n  :target: https://anyoptimization.com/projects/pyrecorder/\n  :alt: pyrecorder\n\n\n\n|logo|\n\n\n\nYou can find the detailed documentation here:\nhttps://anyoptimization.com/projects/pyrecorder/\n\n\n\nInstallation\n============\n\nThe framework is available at the PyPi Repository:\n\n.. code-block:: bash\n\n    pip install -U pyrecorder\n\n\nUsage\n=====\n\nIt's as simple as it should be. Initialize a `Recorder` object with a `Writer` and store plots by calling `record()`.\n\n.. code-block:: bash\n\n    import matplotlib.pyplot as plt\n    import numpy as np\n\n    from pyrecorder.recorder import Recorder\n    from pyrecorder.writers.video import Video\n\n    # create a writer object (here, mp4)\n    writer = Video(\"video.mp4\")\n\n    # use the with statement to close the recorder when done\n    with Recorder(writer) as rec:\n\n        # record 10 different snapshots\n        for t in range(10):\n\n            # create the plot (here, using matplotlib)\n            X = np.random.random((50, 2))\n            plt.scatter(X[:, 0], X[:, 1], facecolor=\"none\", edgecolor=\"red\")\n\n            # use the record to store the current plot\n            rec.record()\n\n\n\n.. image:: https://anyoptimization.com/projects/pyrecorder/_static/usage.gif\n\n\nContact\n=======\n\n\nFeel free to contact me if you have any question:\n\n::\n\n    Julian Blank (blankjul [at] egr.msu.edu)\n    Michigan State University\n    Computational Optimization and Innovation Laboratory (COIN)\n    East Lansing, MI 48824, USA\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyoptimization%2Fpyrecorder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanyoptimization%2Fpyrecorder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanyoptimization%2Fpyrecorder/lists"}