scal


Namescal JSON
Version 2.3.0 PyPI version JSON
download
home_pagehttp://framagit.org/spalax/scal
SummaryLaTeX generation of school year calendars
upload_time2023-10-07 19:46:26
maintainer
docs_urlNone
authorLouis Paternault
requires_python<4,>=3.7
licenseGPLv3 or any later version
keywords calendar latex school tikz
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            scal 📅 School year calendar generator
======================================

I use this program about once a year to print a one-page school-year
calendar. But it can be used to represent any calendar.

It is heavily inspired by the simple yet powerful Robert Krause's `calendar <http://www.texample.net/tikz/examples/a-calender-for-doublesided-din-a4/>`_, itself using the complex yet powerful Till Tantau's `TikZ <http://www.ctan.org/pkg/pgf>`_ LaTeX package.

Examples
--------

- One-page calendar of a school year

  - English:
    `2023-2024 <https://spalax.frama.io/scal/examples/calendar-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-en-20232024.scl>`__).

  - French

    - 2023-2024:
      `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-A.scl>`__);
      `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-B.scl>`__);
      `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-C.scl>`__).

    - 2024-2025:
      `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-A.scl>`__);
      `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-B.scl>`__);
      `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-C.scl>`__).

    - 2025-2026:
      `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-A.scl>`__);
      `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-B.scl>`__);
      `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-C.scl>`__).

- Weekly planners (`How to print? <https://scal.readthedocs.io/en/latest/#examples>`__)

  - English:
    `2023-2024 <https://spalax.frama.io/scal/examples/weekly-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-en-20232024.scl>`__ ; `imposed <https://spalax.frama.io/scal/examples/weekly-en-20232024-impose.pdf>`__).

  - French

    - 2023-2024:
      `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-A.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A-impose.pdf>`__);
      `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-B.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B-impose.pdf>`__);
      `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-C.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C-impose.pdf>`__).

    - 2024-2025:
      `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-A.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A-impose.pdf>`__);
      `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-B.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B-impose.pdf>`__);
      `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-C.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C-impose.pdf>`__).

    - 2025-2026:
      `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-A.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A-impose.pdf>`__);
      `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-B.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B-impose.pdf>`__);
      `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-C.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C-impose.pdf>`__).

What's new?
-----------

See `changelog <https://git.framasoft.org/spalax/scal/blob/main/CHANGELOG.md>`_.

Download and install
--------------------

See the end of list for a (quick and dirty) Debian package.

* Non-Python dependencies.
  This program produces LuaLaTeX code, but does not compile it. So, LaTeX is not
  needed to run this program. However, to compile the generated code, you will
  need a working LaTeX installation, with ``lualatex``, and LuaLaTeX packages
  `geometry <http://www.ctan.org/pkg/geometry>`_,
  `babel <http://www.ctan.org/pkg/babel>`_,
  `tikz <http://www.ctan.org/pkg/pgf>`_,
  `fontspec <http://www.ctan.org/pkg/fontspec>`_,
  and `translator` (provided by the `beamer <http://www.ctan.org/pkg/beamer>`_ package).
  Those are provided by `TeXLive <https://www.tug.org/texlive/>`_ on GNU/Linux, `MiKTeX <http://miktex.org/>`_ on Windows, and `MacTeX <https://tug.org/mactex/>`_ on MacOS.

* From sources:

  * Download: https://pypi.python.org/pypi/scal
  * Install (in a `virtualenv`, if you do not want to mess with your distribution installation system)::

        python3 setup.py install

* From pip::

    pip install scal

* Quick and dirty Debian (and Ubuntu?) package

  This requires `stdeb <https://github.com/astraw/stdeb>`_ to be installed::

      python3 setup.py --command-packages=stdeb.command bdist_deb
      sudo dpkg -i deb_dist/scal-<VERSION>_all.deb

Documentation
-------------

* The compiled documentation is available on `readthedocs <http://scal.readthedocs.io>`_

* To compile it from source, download and run::

      cd doc && make html

Developpers
-----------

A partially supported `autoscl <https://framagit.org/spalax/scal/blob/main/bin/autoscl>`_ script is available in the `bin` directory. It can automatically download holiday dates from the internet, and generate the relevant `.scl` file. See `autoscl --help` for more information.

            

Raw data

            {
    "_id": null,
    "home_page": "http://framagit.org/spalax/scal",
    "name": "scal",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<4,>=3.7",
    "maintainer_email": "",
    "keywords": "calendar latex school tikz",
    "author": "Louis Paternault",
    "author_email": "spalax@gresille.org",
    "download_url": "https://files.pythonhosted.org/packages/2d/23/3966b615d0b7023ec5673866722ec3680c0c293cf9cfb841111e025dc013/scal-2.3.0.tar.gz",
    "platform": null,
    "description": "scal \ud83d\udcc5 School year calendar generator\n======================================\n\nI use this program about once a year to print a one-page school-year\ncalendar. But it can be used to represent any calendar.\n\nIt is heavily inspired by the simple yet powerful Robert Krause's `calendar <http://www.texample.net/tikz/examples/a-calender-for-doublesided-din-a4/>`_, itself using the complex yet powerful Till Tantau's `TikZ <http://www.ctan.org/pkg/pgf>`_ LaTeX package.\n\nExamples\n--------\n\n- One-page calendar of a school year\n\n  - English:\n    `2023-2024 <https://spalax.frama.io/scal/examples/calendar-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-en-20232024.scl>`__).\n\n  - French\n\n    - 2023-2024:\n      `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-A.scl>`__);\n      `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-B.scl>`__);\n      `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-C.scl>`__).\n\n    - 2024-2025:\n      `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-A.scl>`__);\n      `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-B.scl>`__);\n      `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-C.scl>`__).\n\n    - 2025-2026:\n      `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-A.scl>`__);\n      `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-B.scl>`__);\n      `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-C.scl>`__).\n\n- Weekly planners (`How to print? <https://scal.readthedocs.io/en/latest/#examples>`__)\n\n  - English:\n    `2023-2024 <https://spalax.frama.io/scal/examples/weekly-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-en-20232024.scl>`__ ; `imposed <https://spalax.frama.io/scal/examples/weekly-en-20232024-impose.pdf>`__).\n\n  - French\n\n    - 2023-2024:\n      `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-A.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A-impose.pdf>`__);\n      `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-B.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B-impose.pdf>`__);\n      `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-C.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C-impose.pdf>`__).\n\n    - 2024-2025:\n      `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-A.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A-impose.pdf>`__);\n      `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-B.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B-impose.pdf>`__);\n      `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-C.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C-impose.pdf>`__).\n\n    - 2025-2026:\n      `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-A.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A-impose.pdf>`__);\n      `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-B.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B-impose.pdf>`__);\n      `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-C.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C-impose.pdf>`__).\n\nWhat's new?\n-----------\n\nSee `changelog <https://git.framasoft.org/spalax/scal/blob/main/CHANGELOG.md>`_.\n\nDownload and install\n--------------------\n\nSee the end of list for a (quick and dirty) Debian package.\n\n* Non-Python dependencies.\n  This program produces LuaLaTeX code, but does not compile it. So, LaTeX is not\n  needed to run this program. However, to compile the generated code, you will\n  need a working LaTeX installation, with ``lualatex``, and LuaLaTeX packages\n  `geometry <http://www.ctan.org/pkg/geometry>`_,\n  `babel <http://www.ctan.org/pkg/babel>`_,\n  `tikz <http://www.ctan.org/pkg/pgf>`_,\n  `fontspec <http://www.ctan.org/pkg/fontspec>`_,\n  and `translator` (provided by the `beamer <http://www.ctan.org/pkg/beamer>`_ package).\n  Those are provided by `TeXLive <https://www.tug.org/texlive/>`_ on GNU/Linux, `MiKTeX <http://miktex.org/>`_ on Windows, and `MacTeX <https://tug.org/mactex/>`_ on MacOS.\n\n* From sources:\n\n  * Download: https://pypi.python.org/pypi/scal\n  * Install (in a `virtualenv`, if you do not want to mess with your distribution installation system)::\n\n        python3 setup.py install\n\n* From pip::\n\n    pip install scal\n\n* Quick and dirty Debian (and Ubuntu?) package\n\n  This requires `stdeb <https://github.com/astraw/stdeb>`_ to be installed::\n\n      python3 setup.py --command-packages=stdeb.command bdist_deb\n      sudo dpkg -i deb_dist/scal-<VERSION>_all.deb\n\nDocumentation\n-------------\n\n* The compiled documentation is available on `readthedocs <http://scal.readthedocs.io>`_\n\n* To compile it from source, download and run::\n\n      cd doc && make html\n\nDeveloppers\n-----------\n\nA partially supported `autoscl <https://framagit.org/spalax/scal/blob/main/bin/autoscl>`_ script is available in the `bin` directory. It can automatically download holiday dates from the internet, and generate the relevant `.scl` file. See `autoscl --help` for more information.\n",
    "bugtrack_url": null,
    "license": "GPLv3 or any later version",
    "summary": "LaTeX generation of school year calendars",
    "version": "2.3.0",
    "project_urls": {
        "Documentation": "http://scal.readthedocs.io",
        "Homepage": "http://framagit.org/spalax/scal",
        "Source": "https://framagit.org/spalax/scal",
        "Tracker": "https://framagit.org/spalax/scal/issues"
    },
    "split_keywords": [
        "calendar",
        "latex",
        "school",
        "tikz"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2ebbfc5d456a3baec614237076cad2930e2d30cb271c51bbb992d4d30dae94df",
                "md5": "476f3af627faa4567eb340dec9588510",
                "sha256": "8bf40e2e06a0293dafc9ae4b7aafd0524133085a86f4324f5f8eef0db3b7190b"
            },
            "downloads": -1,
            "filename": "scal-2.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "476f3af627faa4567eb340dec9588510",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.7",
            "size": 31834,
            "upload_time": "2023-10-07T19:46:24",
            "upload_time_iso_8601": "2023-10-07T19:46:24.880733Z",
            "url": "https://files.pythonhosted.org/packages/2e/bb/fc5d456a3baec614237076cad2930e2d30cb271c51bbb992d4d30dae94df/scal-2.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2d233966b615d0b7023ec5673866722ec3680c0c293cf9cfb841111e025dc013",
                "md5": "3531bd7c1a4f357ac6d6bd1e22abdd39",
                "sha256": "9ad341f96e1b7fca7254cbb4e15cce52d22d8949442f73783d223b54bdd5ba86"
            },
            "downloads": -1,
            "filename": "scal-2.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3531bd7c1a4f357ac6d6bd1e22abdd39",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.7",
            "size": 28329,
            "upload_time": "2023-10-07T19:46:26",
            "upload_time_iso_8601": "2023-10-07T19:46:26.618812Z",
            "url": "https://files.pythonhosted.org/packages/2d/23/3966b615d0b7023ec5673866722ec3680c0c293cf9cfb841111e025dc013/scal-2.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-07 19:46:26",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "scal"
}
        
Elapsed time: 0.50936s