{"id":15358475,"url":"https://github.com/astrofrog/astropy_io_refactor","last_synced_at":"2025-07-20T15:03:17.189Z","repository":{"id":15760197,"uuid":"18499008","full_name":"astrofrog/astropy_io_refactor","owner":"astrofrog","description":null,"archived":false,"fork":false,"pushed_at":"2014-04-06T20:51:56.000Z","size":136,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-23T01:46:17.353Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astrofrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-06T20:50:08.000Z","updated_at":"2014-04-06T20:51:55.000Z","dependencies_parsed_at":"2022-09-24T04:00:26.141Z","dependency_job_id":null,"html_url":"https://github.com/astrofrog/astropy_io_refactor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/astrofrog/astropy_io_refactor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Fastropy_io_refactor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Fastropy_io_refactor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Fastropy_io_refactor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Fastropy_io_refactor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astrofrog","download_url":"https://codeload.github.com/astrofrog/astropy_io_refactor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrofrog%2Fastropy_io_refactor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266143941,"owners_count":23883069,"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-10-01T12:41:30.897Z","updated_at":"2025-07-20T15:03:17.169Z","avatar_url":"https://github.com/astrofrog.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"About\n-----\n\nThis is a demonstration of a proposed new I/O unified framework. The goal of\nthis framework is to:\n\n* define readers/writers/identifiers as file format-specific and data-class\n  specific IO classes (e.g. VOTableIO)\n* define all the documentation related to each reader/writer locally to the\n  actual code.\n* defer importing the classes defining I/O until the last minute.\n\nDownsides of the current approach:\n\n* We have to refer to the supported class (e.g. ``Table`` or ``NDData``) by\n  name instead of by the class itself - this is needed for two reasons:\n\n    * To prevent circular imports, ``_supported_class`` has to be a string,\n      not the data class.\n\n    * the ``fix_docstring`` decorator can't take the class itself, it has to\n      take the name of the class.\n\nNotes:\n\n* The code is very hacky - things like text wrap and so on can be dealt with\n  much better, but this is just meant to be a 'toy model' of the\n  infrastructure.\n\nFiles\n-----\n\n* ``connect_txt.py`` - defines a .txt reader\n\n* ``registry.py`` - main registry module\n\n* ``table.py`` - Table class definition\n\n* ``test.py`` and ``data.txt`` - test files\n\nExample\n-------\n\n    In [1]: from table import Table\n\n    In [2]: print(Table.read.__doc__)\n\n            Read and parse a data table and return as a Table.\n        \n            Parameters\n            ----------\n            format : str\n                Explicilty specify the format. See the `Notes`_ below for the\n                available formats and options.\n\n            Notes\n            -----\n            In addition to the ``format`` argumnet, the remaining arguments\n            depend on the format used. The following formats are availale, along\n            with the relevant arguments in each case:\n\n            * ``format='txt'``\n\n                filename : str\n                     The name of the file to read from\n                skiprows : int\n                     How many rows to skip at the start of the file\n\n\n    In [3]: t = Table.read('data.txt')\n\n    In [4]: print(t)\n    [ 1.  2.  3.]\n        \nIn the above example, the docstring was generated automatically","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrofrog%2Fastropy_io_refactor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrofrog%2Fastropy_io_refactor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrofrog%2Fastropy_io_refactor/lists"}