File: C:/Users/fred/anaconda3/Lib/site-packages/astropy/io/ascii/connect.py
# Licensed under a 3-clause BSD style license - see LICENSE.rst
# This file connects the readers/writers to the astropy.table.Table class
import re
from astropy.io import registry as io_registry # noqa: F401
from astropy.table import Table
__all__ = []
def io_read(format, filename, **kwargs):
from .ui import read
if format != "ascii":
format = re.sub(r"^ascii\.", "", format)
kwargs["format"] = format
return read(filename, **kwargs)
def io_write(format, table, filename, **kwargs):
from .ui import write
if format != "ascii":
format = re.sub(r"^ascii\.", "", format)
kwargs["format"] = format
return write(table, filename, **kwargs)
def io_identify(suffix, origin, filepath, fileobj, *args, **kwargs):
return filepath is not None and filepath.endswith(suffix)
def _get_connectors_table():
from .core import FORMAT_CLASSES
rows = []
rows.append(
("ascii", "", "Yes", "ASCII table in any supported format (uses guessing)")
)
for format in sorted(FORMAT_CLASSES):
cls = FORMAT_CLASSES[format]
io_format = "ascii." + cls._format_name
description = getattr(cls, "_description", "")
class_link = f":class:`~{cls.__module__}.{cls.__name__}`"
suffix = getattr(cls, "_io_registry_suffix", "")
can_write = "Yes" if getattr(cls, "_io_registry_can_write", True) else ""
rows.append((io_format, suffix, can_write, f"{class_link}: {description}"))
out = Table(list(zip(*rows)), names=("Format", "Suffix", "Write", "Description"))
for colname in ("Format", "Description"):
width = max(len(x) for x in out[colname])
out[colname].format = f"%-{width}s"
return out