{ "info": { "author": "Jan Str\u00e1nsk\u00fd", "author_email": "honzik.stransky@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Programming Language :: Unix Shell" ], "description": "# [PhotoCalendar](https://github.com/stranskyjan/photo-calendar)\nA [Python](https://python.org) utility to create custom weekly/monthly/... photo calendars.\nFor example:\n![template delphinus](https://raw.githubusercontent.com/stranskyjan/photo-calendar/master/images/delphinus.png)\n\n## Table of Contents\n- [Overview](#overview)\n- [Examples](#examples)\n\t- [Usage](#usage)\n\t- [Templates](#template-examples)\n- [Installation](#installation)\n- [What is here](#what-is-here)\n- [Contribution](#contribution)\n- [License](#license)\n- [Acknowledgements](#acknowledgements)\n\n## Overview\nThe program creates the calendar in HTML format.\n> Note: you can then print it to PDF using browser or, e.g., [weasyptint utility](https://weasyprint.org).\n\nUser may provide (see [examples below](#examples)):\n- name of weekdays and months and their abbreviations\n- images (for each week, for title page, for backgrounds)\n- name-days\n- public holidays\n- religious holidays\n- notes (friends' birthdays, anniversaries, ...)\n- template how the final calendar looks like\n- title, first week day, ...\n\n##### HTML templates\nThe produced HTML structure and CSS styling is defined by template - a python module defining `toHTMLString(calendar)` function and `CSSString` string variable.\nAs an example and inspiration, a few predefined templates are provided.\nSee [examples](examples), documentation or source code for more information how to create a custom template.\n\n##### Compatibility\nThe package works with both Python 2 and 3 (tested on [Ubuntu 16.04 LTS](https://www.ubuntu.com/) and Python 2.7.12 and Python 3.5.2).\n\n## Examples\n\n### Usage\n\n#### Python:\n```python\nfrom photocalendar import PhotoCalendar\ncalendar = PhotoCalendar( # not all arguments are mandatory\n\toutputBase = \"/some/output/base\",\n\tyear = 2019,\n\tfirstWeekDay = \"Tu\", # Tuesday as the first week day? Well, why not...\n\timagesDirectory = \"/some/directory/with/images/for/each/week\",\n\timageDescriptionsFile = \"/some/file/with/image/descriptions/for/each/week\",\n\tbackgroundImagesDirectory = \"/some/directory/with/backround/images/for/each/week\",\n\ttitle = \"Some calendar title\",\n\ttitlePageImage = \"/some/image/for/title/page\",\n\ttitlePageBackground = \"/some/background/image/for/titlepage\",\n\tlastPageBackground = \"/some/background/image/for/last/page\",\n\tnameDaysFile = \"/some/file/with/name-days\",\n\treligiousHolidaysFile = \"/some/file/with/religious/holidays\",\n\tpublicHolidaysFile = \"/some/file/with/public/holidays\",\n\tnotesFile = \"/some/file/with/notes/like/birthdays/etc\",\n\tweekDayNamesFile = \"/some/file/with/custom/weekday/names\",\n\tabbrWeekDayNamesFile = \"/some/file/with/custom/abbreviated/weekday/names\",\n\tmonthNamesFile = \"/some/file/with/custom/month/names\",\n\tabbrMonthNamesFile = \"/some/file/with/custom/abbreviated/month/names\",\n\ttemplate = \"delphinus\",\n)\ncalendar.toHTML()\n```\n\n#### Shell:\n```shell\n# not all arguments are mandatory\nphotocalendar \\\n\t--output-base /some/output/base \\\n\t--year 2019 \\\n\t--first-week-day Tu \\\n\t--images-directory /some/directory/with/images/for/each/week \\\n\t--image-descriptions-file /some/file/with/image/descriptions/for/each/week \\\n\t--background-images-directory /some/directory/with/backround/images/for/each/week \\\n\t--title \"Some calendar title\" \\\n\t--title-page-image /some/image/for/title/page \\\n\t--title-page-background /some/background/image/for/titlepage \\\n\t--last-page-background /some/background/image/for/last/page \\\n\t--name-days-file /some/file/with/name-days \\\n\t--religious-holidays-file /some/file/with/religious/holidays \\\n\t--public-holidays-file /some/file/with/public/holidays \\\n\t--notes-file /some/file/with/notes/like/birthdays/etc \\\n\t--week-day-names-file /some/file/with/custom/week/day/names \\\n\t--abbr-week-day-names-file /some/file/with/custom/abbreviated/week/day/names \\\n\t--month-names-file /some/file/with/custom/month/names \\\n\t--abbr-month-names-file /some/file/with/custom/abbreviated/month/names \\\n\t--template delphinus\n```\n\n### Template examples\n> Note:\n> the photos and backgrounds are only illustrative.\n> They are provided by the user in the real use case.\n\nThe title page and one inside page is shown.\n\nIn the illustrations,\n[picture](https://upload.wikimedia.org/wikipedia/commons/d/d1/Golden_Gate_1.jpg)\nof\n[Golden Gate Bridge](https://en.wikipedia.org/wiki/Golden_Gate_Bridge)\nand\n[picture](https://upload.wikimedia.org/wikipedia/commons/4/4c/Matterhorn_from_Zermatt2.jpg)\nof\n[Matterhorn](https://en.wikipedia.org/wiki/Matterhorn)\nare used.\n\n#### Template delphinus:\nWeekly A5 landscape calendar\n![template delphinus](https://raw.githubusercontent.com/stranskyjan/photo-calendar/master/images/delphinus.png)\n\n#### Template columba:\nMonthly A4 portrait calendar\n![template delphinus](https://raw.githubusercontent.com/stranskyjan/photo-calendar/master/images/columba.png)\n\n#### Template lupus:\nTwo-weeks calendar\n![template delphinus](https://raw.githubusercontent.com/stranskyjan/photo-calendar/master/images/lupus.png)\n\n## Installation\n1. Using `setup.py` file:\n\n\t`python setup.py install [options]`, e.g. `python setup.py --user`\n\n2. Using `make` (calls `setup.py` internally):\n\n\t`make install [options]`, e.g. `make install USER=TRUE PYTHON=python3`\n\n3. Using [`pip`](https://pypi.org/project/pip/)\n\n\t`[sudo] pip install [options] photo-calendar`, e.g. `pip install --user photo-calendar`\n\n## What is here\n| file/directory | description |\n| --- | --- |\n| [bin](bin) | directory containing executable python script |\n| [doc](doc) | source files for HTML documentation |\n| [examples](examples) | directory with examples |\n| [images](images) | images for github page (e.g., templates illustrations) |\n| [locale](locale) | files for localization (public holidays, name days, etc.) |\n| [Makefile](Makefile) | makefile for the project (with targets `help`, `install`, `doc`, `test`, `clean`, `dist`) |\n| [photocalendar](photocalendar) | actual python package |\n| [setup.py](setup.py) | python setup file for installation |\n| [tests](tests) | python unit tests |\n\n## Contribution\n#### Pull Requests\nAre welcome. Especially:\n- locales (name-days, public holidays)\n- templates\n\nBut, please, discuss the intention beforehand with the author.\n\n#### Bug reporting\nIn case of any question or problem, please leave an issue at the [githup page of the project](https://github.com/stranskyjan/photo-calendar).\n\n#### Contributors\n- [Jan Str\u00e1nsk\u00fd](https://github.com/stranskyjan)\n\n## License\nThis project is licensed under the LGPL License - see the [license file](LICENSE) for details.\n\n## Acknowledgements\n- to Petr Hlav\u00e1\u010dek for the inital idea and LaTeX implementation and providing his source code\n- to [dominate python package](https://github.com/Knio/dominate) for HTML creation inspiration", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/stranskyjan/photo-calendar", "keywords": "photocalendar photo calendar", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "photo-calendar", "package_url": "https://pypi.org/project/photo-calendar/", "platform": "", "project_url": "https://pypi.org/project/photo-calendar/", "project_urls": { "Homepage": "https://github.com/stranskyjan/photo-calendar" }, "release_url": "https://pypi.org/project/photo-calendar/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "Creates custom weekly/monthly/... photo calendars", "version": "0.1.1" }, "last_serial": 4410862, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "21d95b2527d8c6e5990cea9693779994", "sha256": "a020ccf9d5b44412ce3630b641882946a4fb06852f9a988edae5460a23db3fbe" }, "downloads": -1, "filename": "photo_calendar-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "21d95b2527d8c6e5990cea9693779994", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 28067, "upload_time": "2018-10-22T21:57:10", "url": "https://files.pythonhosted.org/packages/9b/11/73d1b48ee12ec9b6a7ed43b5e2bbbf5db5b7c46e5cdaa6bec8e570e7cec3/photo_calendar-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c69d93e396080d4c3a21718d6a708d2d", "sha256": "b0391ea59188fd61a0daa45fd13b9436e6ae1671f88542c9d141be05f48e91b4" }, "downloads": -1, "filename": "photo_calendar-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c69d93e396080d4c3a21718d6a708d2d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28042, "upload_time": "2018-10-22T21:57:09", "url": "https://files.pythonhosted.org/packages/3a/3a/751a201a846a42b21073cf71653ab722f0f64ff03662361ec3fcf4f2c91a/photo_calendar-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e98baeb61e3f96144b5b7d140d21127", "sha256": "fece66f49ffd9098d63b33604209097b941e5cb38ff9b2c5e3a6f42b8030cfc8" }, "downloads": -1, "filename": "photo-calendar-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4e98baeb61e3f96144b5b7d140d21127", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20379, "upload_time": "2018-10-22T21:57:11", "url": "https://files.pythonhosted.org/packages/69/89/f63c231cc5f7c1532bfc491760524a1c871994f5d9c6f342e8cc5e400dce/photo-calendar-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c4d73266432879d079ecc3cfa6f42186", "sha256": "ff427226adf532fe8c9d86a823a740211f410a002a5a284d34518bf1bce297e6" }, "downloads": -1, "filename": "photo_calendar-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c4d73266432879d079ecc3cfa6f42186", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 28077, "upload_time": "2018-10-24T12:21:35", "url": "https://files.pythonhosted.org/packages/5b/51/7f060ea4af4433a3d89f17ff01dd36a39b7b65a9157c932e93ede7eb8f15/photo_calendar-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea08e6035011deb325794bf4663a8719", "sha256": "f16d7dd5440cbf94d33f95578c360958d1647b709c66984f1f1dc0015d7e9b3c" }, "downloads": -1, "filename": "photo_calendar-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ea08e6035011deb325794bf4663a8719", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28077, "upload_time": "2018-10-24T12:21:33", "url": "https://files.pythonhosted.org/packages/ce/1f/5c1a6c8672159cf3eb39a46719f7ddda29a594d7582eff478a5389f7557c/photo_calendar-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af20c9489c2dbc4c24409588a0916135", "sha256": "ed713c939f9ae8c6b6a3f0c934cefc7ba767dc8089a60c02fe6d2b71c68659d0" }, "downloads": -1, "filename": "photo-calendar-0.1.1.tar.gz", "has_sig": false, "md5_digest": "af20c9489c2dbc4c24409588a0916135", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18285, "upload_time": "2018-10-24T12:21:23", "url": "https://files.pythonhosted.org/packages/10/6e/3f1c903d4d937adb7fea055db25d85ff9949869371f578e95ab52216f5fa/photo-calendar-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c4d73266432879d079ecc3cfa6f42186", "sha256": "ff427226adf532fe8c9d86a823a740211f410a002a5a284d34518bf1bce297e6" }, "downloads": -1, "filename": "photo_calendar-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c4d73266432879d079ecc3cfa6f42186", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 28077, "upload_time": "2018-10-24T12:21:35", "url": "https://files.pythonhosted.org/packages/5b/51/7f060ea4af4433a3d89f17ff01dd36a39b7b65a9157c932e93ede7eb8f15/photo_calendar-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea08e6035011deb325794bf4663a8719", "sha256": "f16d7dd5440cbf94d33f95578c360958d1647b709c66984f1f1dc0015d7e9b3c" }, "downloads": -1, "filename": "photo_calendar-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ea08e6035011deb325794bf4663a8719", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28077, "upload_time": "2018-10-24T12:21:33", "url": "https://files.pythonhosted.org/packages/ce/1f/5c1a6c8672159cf3eb39a46719f7ddda29a594d7582eff478a5389f7557c/photo_calendar-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af20c9489c2dbc4c24409588a0916135", "sha256": "ed713c939f9ae8c6b6a3f0c934cefc7ba767dc8089a60c02fe6d2b71c68659d0" }, "downloads": -1, "filename": "photo-calendar-0.1.1.tar.gz", "has_sig": false, "md5_digest": "af20c9489c2dbc4c24409588a0916135", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18285, "upload_time": "2018-10-24T12:21:23", "url": "https://files.pythonhosted.org/packages/10/6e/3f1c903d4d937adb7fea055db25d85ff9949869371f578e95ab52216f5fa/photo-calendar-0.1.1.tar.gz" } ] }