# Clerks Friend
<p>
<a href="https://clerks-friend.readthedocs.io/en/stable/">
<img src="https://img.shields.io/readthedocs/clerks-friend"/>
</a>
<a href="https://pypi.org/project/clerks-friend/">
<img src="https://img.shields.io/pypi/v/clerks-friend"/>
</a>
<a href="https://pypi.org/project/clerks-friend/">
<img src="https://img.shields.io/pypi/wheel/clerks-friend"/>
</a>
<a href="https://pypi.org/project/clerks-friend/">
<img src="https://img.shields.io/pypi/pyversions/clerks-friend"/>
</a>
<a href="https://github.com/IsaacsLab42/clerks_friend/">
<img src="https://img.shields.io/github/license/IsaacsLab42/clerks_friend"/>
</a>
<a href="https://black.readthedocs.io/en/stable/">
<img src="https://img.shields.io/badge/code_style-black-black"/>
</a>
</p>
---
Useful reports for Ward Clerk's of The Church of Jesus Christ of Latter-Day Saints. The
included script `clerks_friend` can run several useful reports and produce Markdown
style output. This output could be used by various programs to create HTML or PDF
output. Or, the way I use it, is to paste the markdown into Google Docs. They have a
feature where markdown can be pasted into a Google Doc and it will render the output.
## Command Line Script
This package installs a command line script called `clerks_friend`:
```bash
$ clerks_friend --help
usage: clerks_friend [-h] [-u USERNAME] [-p PASSWORD] [-c COOKIE_FILE]
[-o MARKDOWN_OUTPUT]
INPUT_FILE
Run clerk reports from LCR for The Church of Jesus Christ of Latter-Day
Saints.
positional arguments:
INPUT_FILE input YAML file containing the report
configuration
options:
-h, --help show this help message and exit
-u USERNAME, --username USERNAME
LCR username [env var: LCR_USERNAME]
-p PASSWORD, --password PASSWORD
LCR password [env var: LCR_PASSWORD]
-c COOKIE_FILE, --cookie-file COOKIE_FILE
cookie jar file to save the session or load a
saved session
-o MARKDOWN_OUTPUT, --output MARKDOWN_OUTPUT
output file for markdown report. Defaults to
stdout.
```
## Authentication
The `clerks_friend` script requires your member username and password, for The Church of
Jesus Christ of Latter-Day Saints LCR system. There are three different ways to supply
these credentials:
1. On the command line, using the `--username` and `--password` options.
2. Through the environment variables `LCR_USERNAME` and `LCR_PASSWORD`.
3. From an environment file `.env`. This is the recommended option.
The `.env` file must be in the same directory that the script is run from. The file format is very simple:
```
LCR_USERNAME=ace
LCR_PASSWORD=ThePassword
```
## Report File Input
The input file, specifying which reports to run and their parameters, is a YAML file
format. As example is shown below:
```yaml
---
title: Celestial Ward Clerical Report
reports:
- name: not_set_apart
heading: Not Set Apart
- name: expiring_recommends
heading: "Expiring/Expired Temple Recommends"
parameters:
months_past: -3
months_future: 1
recommend_type: REGULAR
- name: protecting_children_and_youth_training
heading: Protecting Children and Youth Training
parameters:
months_future: 1
- name: sacrament_meeting_attendance
heading: Sacrament Meeting Attendance
parameters:
year: 2024
```
## Valid Reports
The currently valid report types are:
* expiring_recommends
* members_moved_in
* members_moved_out
* not_set_apart
* protecting_children_and_youth_training
* sacrament_meeting_attendance
As time permits I would like to add additional reports. If you would like to help add
more reports then please feel free to open a pull request, or an issue describing the
report you'd like.
## Cached Sessions
This script uses the [lcr_session](https://github.com/IsaacsLab42/lcr_session) library
to provide authentication. This library can also cache sessions, so that
re-authentication is not necessary if several reports need to be run in a row. For this
use the `--cookie-file` option. Church sessions are typically valid for one hour.
## Example
For example, save the above YAML sample as `report.yaml`. Create a `.env` file with your
LCR credentials, then run the following:
```bash
$ clerks_friend ./report.yaml -c cookies.txt -o report.md
```
A `report.md` file would be output with the results. This could then be copied and
pasted into a Google Document, which would render the markdown properly. Note that
markdown support must be enabled for the document, and you must select the "Paste from
markdown" option.
Raw data
{
"_id": null,
"home_page": "https://github.com/IsaacsLab42/clerks_friend",
"name": "clerks-friend",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "lcr, churchofjesuschrist",
"author": "Isaac Wagner",
"author_email": "14634+IsaacsLab42@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/7c/23/3acbd8e6efe17ca4024eb18c9ded6bffcaed9d759cad8d4c07e3e7785384/clerks_friend-1.0.3.tar.gz",
"platform": null,
"description": "# Clerks Friend\n\n<p>\n <a href=\"https://clerks-friend.readthedocs.io/en/stable/\">\n <img src=\"https://img.shields.io/readthedocs/clerks-friend\"/>\n </a>\n <a href=\"https://pypi.org/project/clerks-friend/\">\n <img src=\"https://img.shields.io/pypi/v/clerks-friend\"/>\n </a>\n <a href=\"https://pypi.org/project/clerks-friend/\">\n <img src=\"https://img.shields.io/pypi/wheel/clerks-friend\"/>\n </a>\n <a href=\"https://pypi.org/project/clerks-friend/\">\n <img src=\"https://img.shields.io/pypi/pyversions/clerks-friend\"/>\n </a>\n <a href=\"https://github.com/IsaacsLab42/clerks_friend/\">\n <img src=\"https://img.shields.io/github/license/IsaacsLab42/clerks_friend\"/>\n </a>\n <a href=\"https://black.readthedocs.io/en/stable/\">\n <img src=\"https://img.shields.io/badge/code_style-black-black\"/>\n </a>\n</p>\n\n---\n\nUseful reports for Ward Clerk's of The Church of Jesus Christ of Latter-Day Saints. The\nincluded script `clerks_friend` can run several useful reports and produce Markdown\nstyle output. This output could be used by various programs to create HTML or PDF\noutput. Or, the way I use it, is to paste the markdown into Google Docs. They have a\nfeature where markdown can be pasted into a Google Doc and it will render the output.\n\n## Command Line Script\n\nThis package installs a command line script called `clerks_friend`:\n\n```bash\n$ clerks_friend --help\nusage: clerks_friend [-h] [-u USERNAME] [-p PASSWORD] [-c COOKIE_FILE]\n [-o MARKDOWN_OUTPUT]\n INPUT_FILE\n\nRun clerk reports from LCR for The Church of Jesus Christ of Latter-Day\nSaints.\n\npositional arguments:\n INPUT_FILE input YAML file containing the report\n configuration\n\noptions:\n -h, --help show this help message and exit\n -u USERNAME, --username USERNAME\n LCR username [env var: LCR_USERNAME]\n -p PASSWORD, --password PASSWORD\n LCR password [env var: LCR_PASSWORD]\n -c COOKIE_FILE, --cookie-file COOKIE_FILE\n cookie jar file to save the session or load a\n saved session\n -o MARKDOWN_OUTPUT, --output MARKDOWN_OUTPUT\n output file for markdown report. Defaults to\n stdout.\n```\n\n## Authentication\n\nThe `clerks_friend` script requires your member username and password, for The Church of\nJesus Christ of Latter-Day Saints LCR system. There are three different ways to supply\nthese credentials:\n\n1. On the command line, using the `--username` and `--password` options.\n2. Through the environment variables `LCR_USERNAME` and `LCR_PASSWORD`.\n3. From an environment file `.env`. This is the recommended option.\n\nThe `.env` file must be in the same directory that the script is run from. The file format is very simple:\n\n```\nLCR_USERNAME=ace\nLCR_PASSWORD=ThePassword\n```\n\n## Report File Input\n\nThe input file, specifying which reports to run and their parameters, is a YAML file\nformat. As example is shown below:\n\n```yaml\n---\ntitle: Celestial Ward Clerical Report\n\nreports:\n - name: not_set_apart\n heading: Not Set Apart\n\n - name: expiring_recommends\n heading: \"Expiring/Expired Temple Recommends\"\n parameters:\n months_past: -3\n months_future: 1\n recommend_type: REGULAR\n\n - name: protecting_children_and_youth_training\n heading: Protecting Children and Youth Training\n parameters:\n months_future: 1\n\n - name: sacrament_meeting_attendance\n heading: Sacrament Meeting Attendance\n parameters:\n year: 2024\n```\n\n## Valid Reports\n\nThe currently valid report types are:\n\n* expiring_recommends\n* members_moved_in\n* members_moved_out\n* not_set_apart\n* protecting_children_and_youth_training\n* sacrament_meeting_attendance\n\nAs time permits I would like to add additional reports. If you would like to help add\nmore reports then please feel free to open a pull request, or an issue describing the\nreport you'd like.\n\n\n## Cached Sessions\n\nThis script uses the [lcr_session](https://github.com/IsaacsLab42/lcr_session) library\nto provide authentication. This library can also cache sessions, so that\nre-authentication is not necessary if several reports need to be run in a row. For this\nuse the `--cookie-file` option. Church sessions are typically valid for one hour.\n\n\n## Example\n\nFor example, save the above YAML sample as `report.yaml`. Create a `.env` file with your\nLCR credentials, then run the following:\n\n```bash\n$ clerks_friend ./report.yaml -c cookies.txt -o report.md\n```\n\nA `report.md` file would be output with the results. This could then be copied and\npasted into a Google Document, which would render the markdown properly. Note that\nmarkdown support must be enabled for the document, and you must select the \"Paste from\nmarkdown\" option.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Useful reports for Ward Clerk's of The Church of Jesus Christ of Latter-Day Saints",
"version": "1.0.3",
"project_urls": {
"Bug Tracker": "https://github.com/IsaacsLab42/clerks_friend/issues",
"Documentation": "https://clerks-friend.readthedocs.io/en/stable/",
"Homepage": "https://github.com/IsaacsLab42/clerks_friend",
"Repository": "https://github.com/IsaacsLab42/clerks_friend"
},
"split_keywords": [
"lcr",
" churchofjesuschrist"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2a1297a5e03d56918b717030c4466c708737025347c42d2e5a011597f8f20b78",
"md5": "128092b1cf616574a3d45fc71eccfeb9",
"sha256": "df38995170be9e324d22522eca8683505c99b976849f9dfe935b1caef4ff17d2"
},
"downloads": -1,
"filename": "clerks_friend-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "128092b1cf616574a3d45fc71eccfeb9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 9683,
"upload_time": "2024-12-30T16:08:31",
"upload_time_iso_8601": "2024-12-30T16:08:31.496709Z",
"url": "https://files.pythonhosted.org/packages/2a/12/97a5e03d56918b717030c4466c708737025347c42d2e5a011597f8f20b78/clerks_friend-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c233acbd8e6efe17ca4024eb18c9ded6bffcaed9d759cad8d4c07e3e7785384",
"md5": "ef789e1a7a35aee8ddb3d5781fab55d0",
"sha256": "0b7735047ea7815d0fc0b46c0d1b70d650e4173a2b4c46e00765fbfecf17cce6"
},
"downloads": -1,
"filename": "clerks_friend-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "ef789e1a7a35aee8ddb3d5781fab55d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 9306,
"upload_time": "2024-12-30T16:08:34",
"upload_time_iso_8601": "2024-12-30T16:08:34.188034Z",
"url": "https://files.pythonhosted.org/packages/7c/23/3acbd8e6efe17ca4024eb18c9ded6bffcaed9d759cad8d4c07e3e7785384/clerks_friend-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-30 16:08:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "IsaacsLab42",
"github_project": "clerks_friend",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "clerks-friend"
}