From 640e944b5efba3c8d56f0f8c967c7ad3fef55d4b Mon Sep 17 00:00:00 2001 From: Stephen Mildenhall Date: Sat, 14 Jun 2025 20:20:33 +0100 Subject: [PATCH] 3.1.0 Updated docs --- docs/conf.py | 3 +- docs/greater_tables.data.rst | 21 +++++++++ docs/greater_tables.rst | 85 ++++++++++++++++++++++++++++++++++++ docs/index.rst | 69 +++++++++++++++-------------- docs/modules.rst | 7 +++ greater_tables/gtcore.py | 14 +++++- greater_tables/tex_svg.py | 5 ++- pyproject.toml | 16 +++++-- 8 files changed, 179 insertions(+), 41 deletions(-) create mode 100644 docs/greater_tables.data.rst create mode 100644 docs/greater_tables.rst create mode 100644 docs/modules.rst diff --git a/docs/conf.py b/docs/conf.py index 5bb12e6..b09663a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -50,7 +50,8 @@ extensions = [ 'sphinx_panels', 'sphinxcontrib.bibtex', 'sphinx_multitoc_numbering', - 'sphinx_rtd_dark_mode'] + 'sphinx_rtd_dark_mode', + 'myst_parser'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/docs/greater_tables.data.rst b/docs/greater_tables.data.rst new file mode 100644 index 0000000..38a3bba --- /dev/null +++ b/docs/greater_tables.data.rst @@ -0,0 +1,21 @@ +greater\_tables.data package +============================ + +Submodules +---------- + +greater\_tables.data.tex\_list module +------------------------------------- + +.. automodule:: greater_tables.data.tex_list + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: greater_tables.data + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/greater_tables.rst b/docs/greater_tables.rst new file mode 100644 index 0000000..4d86a05 --- /dev/null +++ b/docs/greater_tables.rst @@ -0,0 +1,85 @@ +greater\_tables package +======================= + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + greater_tables.data + +Submodules +---------- + +greater\_tables.cli module +-------------------------- + +.. automodule:: greater_tables.cli + :members: + :undoc-members: + :show-inheritance: + +greater\_tables.gtconfig module +------------------------------- + +.. automodule:: greater_tables.gtconfig + :members: + :undoc-members: + :show-inheritance: + +greater\_tables.gtcore module +----------------------------- + +.. automodule:: greater_tables.gtcore + :members: + :undoc-members: + :show-inheritance: + +greater\_tables.gtenums module +------------------------------ + +.. automodule:: greater_tables.gtenums + :members: + :undoc-members: + :show-inheritance: + +greater\_tables.gtformats module +-------------------------------- + +.. automodule:: greater_tables.gtformats + :members: + :undoc-members: + :show-inheritance: + +greater\_tables.hasher module +----------------------------- + +.. automodule:: greater_tables.hasher + :members: + :undoc-members: + :show-inheritance: + +greater\_tables.testdf module +----------------------------- + +.. automodule:: greater_tables.testdf + :members: + :undoc-members: + :show-inheritance: + +greater\_tables.tex\_svg module +------------------------------- + +.. automodule:: greater_tables.tex_svg + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: greater_tables + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/index.rst b/docs/index.rst index cf94f1a..b1b895d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,6 +10,43 @@ Welcome to greater_tables's documentation! :maxdepth: 2 :caption: Contents: + greater_tables + greater_tables.data + + +Introduction +============ + +.. include:: ../README.md + :parser: myst_parser.sphinx_ + + +Other +======= + +Auto doc files generated with:: + + sphinx-apidoc -o . ..\greater_tables\ + +File layout: + + C:\S\TELOS\PYTHON\GREATER_TABLES_PROJECT\GREATER_TABLES + | cli.py + | gtconfig.py + | gtcore.py + | gtenums.py + | gtformats.py + | hasher.py + | testdf.py + | tex_svg.py + | __init__.py + | + +---data + | | tex_list.csv + | | tex_list.py + | | words-12.md + | | __init__.py + Indices and tables @@ -18,35 +55,3 @@ Indices and tables * :ref:`genindex` * :ref:`modindex` * :ref:`search` - - -Introduction -============ - -All about greater_tables. - - -``greater_tables`` Class -========================= - -.. autoclass:: greater_tables.GT - :members: - :undoc-members: - :show-inheritance: - :private-members: - -.. automodule:: greater_tables - :members: - :undoc-members: - :show-inheritance: - :private-members: - -Utilties -======== - -.. automodule:: greater_tables.utilities - :members: - :undoc-members: - :show-inheritance: - :private-members: - diff --git a/docs/modules.rst b/docs/modules.rst new file mode 100644 index 0000000..4a2346f --- /dev/null +++ b/docs/modules.rst @@ -0,0 +1,7 @@ +greater_tables +============== + +.. toctree:: + :maxdepth: 4 + + greater_tables diff --git a/greater_tables/gtcore.py b/greater_tables/gtcore.py index 300e4a9..29ef700 100644 --- a/greater_tables/gtcore.py +++ b/greater_tables/gtcore.py @@ -35,6 +35,7 @@ from . gtenums import Breakability, Alignment from . gtformats import GT_Format, TableFormat, Line, DataRow from . gtconfig import GTConfigModel from . hasher import df_short_hash +from . tex_svg import TikzProcessor # turn this fuck-fest off pd.set_option('future.no_silent_downcasting', True) @@ -1450,14 +1451,14 @@ class GT(object): margin-left: auto; margin-right: auto; }} - /* center tables in quarto context */ + /* center tables in quarto context .greater-table {{ display: block; text-align: center; }} .greater-table > table {{ display: inline-table; - }} + }} */ /* tag formats */ #{self.df_id} caption {{ padding: {2 * padt}px {padr}px {padb}px {padl}px; @@ -2793,3 +2794,12 @@ class GT(object): self.config.max_table_width = mtw self.config.table_width_mode = tw_mode return table + + def as_svg(self): + """Render tikz into svg text.""" + tz = TikzProcessor(self._repr_latex_(), file_name=self.df_id) + p = tz.file_path.with_suffix('.svg') + if not p.exists(): + tz.process_tikz(verbose=False) + txt = p.read_text() + return txt diff --git a/greater_tables/tex_svg.py b/greater_tables/tex_svg.py index 7771c10..ea9e2a7 100644 --- a/greater_tables/tex_svg.py +++ b/greater_tables/tex_svg.py @@ -41,13 +41,14 @@ class TikzProcessor: """ - def __init__(self, txt, base_path='.', tex_engine='pdflatex'): + def __init__(self, txt, file_name='', base_path='.', tex_engine='pdflatex'): self.txt = txt self.tex_engine = tex_engine self.base_path = Path(base_path).resolve() self.out_path = self.base_path / 'tikz' self.out_path.mkdir(exist_ok=True) - self.file_path = self.out_path / txt_short_hash(txt) + file_name = file_name or txt_short_hash(txt) + self.file_path = self.out_path / file_name self.format_file = self.out_path / 'tikz_format.fmt' def split_tikz(self): diff --git a/pyproject.toml b/pyproject.toml index 1be6c70..9666d3c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,16 +7,16 @@ name = "greater_tables" dynamic = ["version"] description = "Perfect tables from pandas dataframes." authors = [{name = "Stephen J Mildehall", email = "mynl@me.com" }] -readme = "README.md" +readme = {file = "README.md", content-type = "text/markdown"} license = { text = "MIT" } requires-python = ">=3.10" dependencies = [ "bs4", "cachetools", - "faker", - "IPython", + "pydantic", "pandas", "rich", + "IPython", ] classifiers = [ "Development Status :: 4 - Beta", @@ -47,6 +47,7 @@ dev = [ "pickleshare", "recommonmark>=0.7.1", "setuptools>=62.3.2", + "myst_parser", "sphinx>=5.0", "sphinx-panels", "sphinx-rtd-dark-mode", @@ -56,6 +57,13 @@ dev = [ "sphinx-multitoc-numbering" ] - [project.scripts] gt = "greater_tables.cli:cli" + +[tool.flake8] +max-line-length = 144 +ignore = ["E501", "E201", "W503"] + +[tool.pycodestyle] +max_line_length = 144 +ignore = ["E501", "E201", "W503"]