Skip to content
This repository was archived by the owner on Apr 23, 2023. It is now read-only.

Commit 3ea6f47

Browse files
committedAug 28, 2021
Initial commit
0 parents  commit 3ea6f47

35 files changed

+1630
-0
lines changed
 

‎.flake8

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[flake8]
2+
max-line-length = 88
3+
max-complexity = 18
4+
exclude =
5+
.git,
6+
__pycache__,
7+
build,
8+
dist,
9+
reports
10+
select = B,C,E,F,W,T4,B9
11+
ignore =
12+
E203, # E203: whitespace before ‘:’
13+
E266, # E266: too many leading ‘#’ for block comment
14+
E501, # E501: line too long (82 > 79 characters)
15+
W503, # W503: line break before binary operator
16+
F401, # F401: module imported but unused
17+
F403 # F403: ‘from module import *’ used; unable to detect undefined names

‎.gitattributes

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
###############################
2+
###### Git Line Endings #######
3+
###############################
4+
5+
# Set default behavior to automatically normalize line endings.
6+
* text=auto
7+
8+
# Force batch scripts to always use CRLF line endings so that if a repo is accessed
9+
# in Windows via a file share from Linux, the scripts will work.
10+
*.{cmd,[cC][mM][dD]} text eol=crlf
11+
*.{bat,[bB][aA][tT]} text eol=crlf
12+
13+
# Force bash scripts to always use LF line endings so that if a repo is accessed
14+
# in Unix via a file share from Windows, the scripts will work.
15+
*.sh text eol=lf
16+
17+
###############################
18+
# Git Large File System (LFS) #
19+
###############################
20+
21+
# Archives
22+
*.7z filter=lfs diff=lfs merge=lfs -text
23+
*.br filter=lfs diff=lfs merge=lfs -text
24+
*.gz filter=lfs diff=lfs merge=lfs -text
25+
*.tar filter=lfs diff=lfs merge=lfs -text
26+
*.zip filter=lfs diff=lfs merge=lfs -text
27+
28+
# Documents
29+
*.pdf filter=lfs diff=lfs merge=lfs -text
30+
*.docx diff=astextplain
31+
*.dot diff=astextplain
32+
*.rtf diff=astextplain
33+
34+
# Images
35+
*.gif filter=lfs diff=lfs merge=lfs -text
36+
*.ico filter=lfs diff=lfs merge=lfs -text
37+
*.jpg filter=lfs diff=lfs merge=lfs -text
38+
*.jpeg filter=lfs diff=lfs merge=lfs -text
39+
*.png filter=lfs diff=lfs merge=lfs -text
40+
*.psd filter=lfs diff=lfs merge=lfs -text
41+
*.webp filter=lfs diff=lfs merge=lfs -text
42+
43+
# Fonts
44+
*.woff2 filter=lfs diff=lfs merge=lfs -text
45+
46+
# Other
47+
*.exe filter=lfs diff=lfs merge=lfs -text
48+
49+
# Custom for Visual Studio
50+
*.cs diff=csharp
51+
*.sln merge=union
52+
*.csproj merge=union
53+
*.vbproj merge=union
54+
*.fsproj merge=union
55+
*.dbproj merge=union

‎.github/CODEOWNERS

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
######################################################################
2+
# These owners will be the default owners for everything in the repo #
3+
######################################################################
4+
* @tallguyjenks @github-actions

‎.github/FUNDING.yml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# These are supported funding model platforms
2+
github: tallguyjenks
3+
patreon: bryanjenks
4+
custom:
5+
[
6+
"https://www.buymeacoffee.com/tallguyjenks",
7+
"https://www.paypal.me/tallguyjenks",
8+
]

‎.github/ISSUE_TEMPLATE/BUG_REPORT.yml

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: 🐛️ Bug Report
2+
description: File a bug report
3+
title: "🐛️: "
4+
labels: ["🐛️ goal: fix", "🚦️ status: awaiting triage"]
5+
#assignees:
6+
# - octocat
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
> Thanks for taking the time to fill out this bug report!
12+
- type: input
13+
id: contact
14+
attributes:
15+
label: Contact Details
16+
description: How can we get in touch with you if we need more info?
17+
placeholder: ex. email@example.com
18+
validations:
19+
required: false
20+
- type: textarea
21+
id: what-happened
22+
attributes:
23+
label: What happened?
24+
description: Please provide a clear and concise description of what the bug is and what did you expect to happen?
25+
placeholder: Tell us what you see!
26+
value: "A bug happened!"
27+
validations:
28+
required: true
29+
- type: dropdown
30+
id: version
31+
attributes:
32+
label: Version
33+
description: What version of our software are you running?
34+
options:
35+
- 0.0.1
36+
- 0.0.2
37+
- 0.0.3
38+
validations:
39+
required: true
40+
- type: textarea
41+
id: logs
42+
attributes:
43+
label: Relevant log output
44+
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
45+
render: shell
46+
- type: checkboxes
47+
id: terms
48+
attributes:
49+
label: Code of Conduct
50+
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com)
51+
options:
52+
- label: I agree to follow this project's Code of Conduct
53+
required: true
54+
- type: checkboxes
55+
id: agreements
56+
attributes:
57+
label: Agreements
58+
description: By submitting this issue, you agree that you have provided and performed the following
59+
options:
60+
- label: I have provided the necessary information about my bug report
61+
required: true
62+
- label: I have downloaded the latest version of this repo and reproduced my issue with the latest version
63+
required: true
64+
- label: If I have posted the same issue elsewhere, I have also mentioned it in this issue.
65+
required: true
66+
- label: I understand that my issue may be closed if I don't fulfill my promises.
67+
required: true
+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: 📖️ Documentation
2+
description: File an issue regarding documentation
3+
title: "📖️: "
4+
labels: ["📖 documentation", "🚦️ status: awaiting triage"]
5+
#assignees:
6+
# - octocat
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
> Thanks for taking the time to help us improve our documentation!
12+
- type: input
13+
id: contact
14+
attributes:
15+
label: Contact Details
16+
description: How can we get in touch with you if we need more info?
17+
placeholder: ex. email@example.com
18+
validations:
19+
required: false
20+
- type: checkboxes
21+
id: type-of-change
22+
attributes:
23+
label: What type of documentation change?
24+
description: Let us know what type of change to the repo documentation this issues is regarding
25+
options:
26+
- label: There is missing documentation where there should be something (pick at least 1)
27+
required: false
28+
- label: There's a typo
29+
required: false
30+
- label: Something is incorrect
31+
required: false
32+
- label: Suggestion on documentation improvement
33+
required: false
34+
- label: Something should be removed
35+
required: false
36+
- label: Other?
37+
required: false
38+
- type: textarea
39+
id: description
40+
attributes:
41+
label: Describe The Change
42+
description: Please provide a clear and concise description of what the requested change is?
43+
placeholder: Thank you for your contribution!
44+
value: "Let us know!"
45+
validations:
46+
required: true
47+
- type: checkboxes
48+
id: terms
49+
attributes:
50+
label: Code of Conduct
51+
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com)
52+
options:
53+
- label: I agree to follow this project's Code of Conduct
54+
required: true
55+
- type: checkboxes
56+
id: agreements
57+
attributes:
58+
label: Agreements
59+
description: By submitting this issue, you agree that you have provided and performed the following
60+
options:
61+
- label: I have provided the necessary information about my bug report
62+
required: true
63+
- label: I have downloaded the latest version of this repo and reproduced my issue with the latest version
64+
required: true
65+
- label: If I have posted the same issue elsewhere, I have also mentioned it in this issue.
66+
required: true
67+
- label: I understand that my issue may be closed if I don't fulfill my promises.
68+
required: true
+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: 📦 Feature Request
2+
description: Request A Feature
3+
title: "📦: "
4+
labels: ["✨️ goal: improve", "🚦️ status: awaiting triage"]
5+
#assignees:
6+
# - octocat
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
> Thanks for taking the time to help us improve!
12+
- type: input
13+
id: contact
14+
attributes:
15+
label: Contact Details
16+
description: How can we get in touch with you if we need more info?
17+
placeholder: ex. email@example.com
18+
validations:
19+
required: false
20+
- type: textarea
21+
id: related-to-problem
22+
attributes:
23+
label: Is your feature request related to a problem?
24+
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
25+
placeholder: Thank you for helping us improve!
26+
value: "Please describe"
27+
validations:
28+
required: true
29+
- type: textarea
30+
id: requested-solution
31+
attributes:
32+
label: Describe the solution you'd like
33+
description: A clear and concise description of what you want to happen.
34+
placeholder: Thank you for helping us improve!
35+
value: "Please describe"
36+
validations:
37+
required: true
38+
- type: textarea
39+
id: alternatives
40+
attributes:
41+
label: Describe alternatives you've considered
42+
description: A clear and concise description of any alternative solutions or features you've considered.
43+
placeholder: Thank you for helping us improve!
44+
value: "Please describe"
45+
validations:
46+
required: true
47+
- type: textarea
48+
id: additional-context
49+
attributes:
50+
label: Additional context
51+
description: Add any other context or screenshots about the feature request here.
52+
placeholder: Thank you for helping us improve!
53+
value: "Please describe"
54+
validations:
55+
required: false
56+
- type: checkboxes
57+
id: terms
58+
attributes:
59+
label: Code of Conduct
60+
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com)
61+
options:
62+
- label: I agree to follow this project's Code of Conduct
63+
required: true
64+
- type: checkboxes
65+
id: agreements
66+
attributes:
67+
label: Agreements
68+
description: By submitting this issue, you agree that you have provided and performed the following
69+
options:
70+
- label: I have provided the necessary information about my bug report
71+
required: true
72+
- label: I have downloaded the latest version of this repo and reproduced my issue with the latest version
73+
required: true
74+
- label: If I have posted the same issue elsewhere, I have also mentioned it in this issue.
75+
required: true
76+
- label: I understand that my issue may be closed if I don't fulfill my promises.
77+
required: true

‎.github/ISSUE_TEMPLATE/QUESTION.yml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: ❓️ Question
2+
description: Ask a general question about how to use the project
3+
title: "❓️: "
4+
labels: ["❓️ talk: question", "🕓️ talk: waiting for response", "🚦️ status: awaiting triage"]
5+
#assignees:
6+
# - octocat
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
> Thanks for your interest in this project!
12+
- type: textarea
13+
id: description
14+
attributes:
15+
label: What is your question?
16+
description: Please provide a clear and concise description of your question?
17+
placeholder: Thank you for your interest!
18+
value: "❓❓❓"
19+
validations:
20+
required: true
21+
- type: checkboxes
22+
id: terms
23+
attributes:
24+
label: Code of Conduct
25+
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com)
26+
options:
27+
- label: I agree to follow this project's Code of Conduct
28+
required: true
29+
- type: checkboxes
30+
id: agreements
31+
attributes:
32+
label: Agreements
33+
description: By submitting this issue, you agree that you have provided and performed the following
34+
options:
35+
- label: I have provided the necessary information about my bug report
36+
required: true
37+
- label: I have downloaded the latest version of this repo and reproduced my issue with the latest version
38+
required: true
39+
- label: If I have posted the same issue elsewhere, I have also mentioned it in this issue.
40+
required: true
41+
- label: I understand that my issue may be closed if I don't fulfill my promises.
42+
required: true

‎.github/ISSUE_TEMPLATE/config.yml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 🙏🏻 Support This Project
4+
url: https://github.com/sponsors/tallguyjenks
5+
about: Help support continued development on this project
6+
- name: 👨🏻‍💻 More about the maintainer
7+
url: https://www.bryanjenks.dev/
8+
about: get to know the maintainer of PyRM

‎.github/PULL_REQUEST_TEMPLATE.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Pull request
2+
3+
Create a pull request to help us improve. See [CONTRIBUTING](/CONTRIBUTING.md).
4+
5+
---
6+
7+
## Confirmations
8+
9+
---
10+
11+
- [ ] I have communicated my intent to create this pull request via repo [Discussions](https://github.com/tallguyjenks/PyRM/discussions) or [Issues](https://github.com/tallguyjenks/PyRM/issues) before undertaking this work
12+
- [ ] I have read [CONTRIBUTING](/CONTRIBUTING.md)
13+
- [ ] My commits are granular and descriptive
14+
- [ ] I have used [Emoji Log](https://github.com/ahmadawais/Emoji-Log) for my commit messages and pull request title
15+
- [ ] My pull request body references the issue it is for, ex: `resolves #11`
16+
- [ ] My pull request passes all checks
17+
- [ ] I acknowledge that if I have not satisfied all of these requirements my pull request **MAY** be closed at maintainers discretion
18+
19+
---
20+
21+
## Relevant Information About This Pull Request
22+
23+
---
24+
25+
My Info Here
26+
27+
---

‎.github/dependabot.yml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "daily"
7+
open-pull-requests-limit: 10
8+
commit-message:
9+
prefix: "🤖️ GH Actions "
10+
include: "scope"
11+
labels: [ "🤖️ dependencies" ]
12+
reviewers: [ "tallguyjenks" ]
13+
14+
# Maintain dependencies for python with poetry
15+
- package-ecosystem: "pip"
16+
directory: "/"
17+
schedule:
18+
interval: "daily"
19+
open-pull-requests-limit: 10
20+
commit-message:
21+
prefix: "🤖️ PROD: "
22+
prefix-development: "🤖️ DEV: "
23+
include: "scope"
24+
labels: [ "🤖️ dependencies" ]
25+
reviewers: [ "tallguyjenks" ]

‎.github/keylabeler.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Determines if we search the title (optional). Defaults to true.
2+
matchTitle: true
3+
4+
# Determines if we search the body (optional). Defaults to true.
5+
matchBody: true
6+
7+
# Determines if label matching is case sensitive (optional). Defaults to true.
8+
caseSensitive: false
9+
10+
# Explicit keyword mappings to labels. Form of match:label. Required.
11+
labelMappings:
12+
"[bug]": bug
13+
"[doc]": documentation
14+
"[dupe]": duplicate
15+
"[enh]": enhancement
16+
"[1]": good first issue
17+
"[help]": help wanted
18+
"[!]": invalid
19+
"[?]": question
20+
"[wont]": wontfix
21+
"[001]": v0.0.1
22+
"[002]": v0.0.2
23+
"[003]": v0.0.3

‎.github/linters/.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
**/.vscode/*.json

‎.github/linters/.eslintrc.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ignorePatterns": "**/.vscode/*.json"
3+
}

‎.github/linters/.flake8

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[flake8]
2+
max-line-length = 88
3+
max-complexity = 18
4+
exclude =
5+
.git,
6+
__pycache__,
7+
build,
8+
dist
9+
select = B,C,E,F,W,T4,B9
10+
ignore =
11+
E203, # E203: whitespace before ‘:’
12+
E266, # E266: too many leading ‘#’ for block comment
13+
E501, # E501: line too long (82 > 79 characters)
14+
W503, # W503: line break before binary operator
15+
F401, # F401: module imported but unused
16+
F403 # F403: ‘from module import *’ used; unable to detect undefined names

‎.github/linters/.jscpd.json

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"threshold": 20,
3+
"reporters": [
4+
"consoleFull"
5+
],
6+
"ignore": [
7+
"**/__snapshots__/**",
8+
"**/.vscode/**",
9+
"**/cycle-a-input-data.md"
10+
],
11+
"absolute": true
12+
}

‎.github/linters/.markdownlint.jsonc

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{ // Example markdownlint JSON(C) configuration with all properties set to their default value
2+
"default": true, // Default state for all rules
3+
"extends": null, // Path to configuration file to extend
4+
"MD001": true, // MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time
5+
"MD002": { "level": 1 },// MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading
6+
"MD003": { "style": "atx" }, // MD003/heading-style/header-style - Heading style
7+
"MD004": { "style": "dash" }, // MD004/ul-style - Unordered list style
8+
"MD005": true, // MD005/list-indent - Inconsistent indentation for list items at the same level
9+
"MD006": true, // MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line
10+
"MD007": { "indent": 2, "start_indented": false }, // MD007/ul-indent - Unordered list indentation
11+
"MD009": { "br_spaces": 2, "list_item_empty_lines": false, "strict": false }, // MD009/no-trailing-spaces - Trailing spaces
12+
"MD010": { "code_blocks": true }, // MD010/no-hard-tabs - Hard tabs
13+
"MD011": true, // MD011/no-reversed-links - Reversed link syntax
14+
"MD012": { "maximum": 1 }, // MD012/no-multiple-blanks - Multiple consecutive blank lines
15+
"MD013": false, // MD013/line-length - Line length
16+
"MD014": true, // MD014/commands-show-output - Dollar signs used before commands without showing output
17+
"MD018": true, // MD018/no-missing-space-atx - No space after hash on atx style heading
18+
"MD019": true, // MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading
19+
"MD020": true, // MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading
20+
"MD021": true, // MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading
21+
"MD022": { "lines_above": 1, "lines_below": 1 }, // MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines
22+
"MD023": true, // MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line
23+
"MD024": { "allow_different_nesting": false, "siblings_only": false }, // MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
24+
"MD025": { "level": 1, "front_matter_title": "^\\s*title\\s*[:=]" }, // MD025/single-title/single-h1 - Multiple top-level headings in the same document
25+
"MD026": { "punctuation": ".,;:!。,;:!" }, // MD026/no-trailing-punctuation - Trailing punctuation in heading
26+
"MD027": true, // MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol
27+
"MD028": true, // MD028/no-blanks-blockquote - Blank line inside blockquote
28+
"MD029": { "style": "one_or_ordered" }, // MD029/ol-prefix - Ordered list item prefix
29+
"MD030": { "ul_single": 1, "ol_single": 1, "ul_multi": 1, "ol_multi": 1 }, // MD030/list-marker-space - Spaces after list markers
30+
"MD031": { "list_items": true }, // MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines
31+
"MD032": true, // MD032/blanks-around-lists - Lists should be surrounded by blank lines
32+
"MD033": { "allowed_elements": ["br","u","sub","sup","mark"] }, // MD033/no-inline-html - Inline HTML
33+
"MD034": true, // MD034/no-bare-urls - Bare URL used
34+
"MD035": { "style": "---" }, // MD035/hr-style - Horizontal rule style
35+
"MD036": { "punctuation": ".,;:!?。,;:!?" }, // MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading
36+
"MD037": true, // MD037/no-space-in-emphasis - Spaces inside emphasis markers
37+
"MD038": true, // MD038/no-space-in-code - Spaces inside code span elements
38+
"MD039": true, // MD039/no-space-in-links - Spaces inside link text
39+
"MD040": true, // MD040/fenced-code-language - Fenced code blocks should have a language specified
40+
"MD041": { "level": 1, "front_matter_title": "^\\s*title\\s*[:=]" }, // MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading
41+
"MD042": true, // MD042/no-empty-links - No empty links
42+
"MD043": false, // MD043/required-headings/required-headers - Required heading structure
43+
"MD044": { "names": [], "code_blocks": false }, // MD044/proper-names - Proper names should have the correct capitalization
44+
"MD045": true, // MD045/no-alt-text - Images should have alternate text (alt text)
45+
"MD046": { "style": "fenced" }, // MD046/code-block-style - Code block style
46+
"MD047": true, // MD047/single-trailing-newline - Files should end with a single newline character
47+
"MD048": { "style": "backtick" } // MD048/code-fence-style - Code fence style
48+
}

‎.github/release-drafter.yml

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name-template: "$RESOLVED_VERSION"
2+
tag-template: "$RESOLVED_VERSION"
3+
change-template: "- $TITLE by @$AUTHOR (#$NUMBER)"
4+
no-changes-template: "- No changes"
5+
categories:
6+
- title: "🚀 New Features"
7+
labels: [ "enhancement" ]
8+
- title: "🐛 Bug Fixes"
9+
<<<<<<< HEAD
10+
labels: [ "bug" ]
11+
- title: "🛠️ Maintenance"
12+
labels: [ "maintenance" ]
13+
- title: "📖️ Documentation"
14+
labels: [ "documentation" ]
15+
=======
16+
labels:
17+
- "bug"
18+
- title: "🛠️ Maintenance"
19+
labels:
20+
- "maintenance"
21+
- title: "📝️ Documentation"
22+
labels:
23+
- "documentation"
24+
>>>>>>> 9bd17e14e980f24f62ec868613bffb49b6ed4dbb
25+
version-resolver:
26+
major:
27+
labels: [ "major" ]
28+
minor:
29+
labels: [ "minor" ]
30+
patch:
31+
labels: [ "patch" ]
32+
default: patch
33+
template: |
34+
$CHANGES
35+
## 👨🏼‍💻 Contributors
36+
$CONTRIBUTORS
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
#######################################
3+
#######################################
4+
## Dependabot automerge dependencies ##
5+
#######################################
6+
#######################################
7+
8+
#
9+
# Documentation:
10+
# https://medium.com/@toufik.airane/automerge-github-dependabot-alerts-with-github-actions-7cd6f5763750
11+
# Taken From: https://github.com/github/super-linter/blob/master/.github/workflows/HOLDING/automerge-dependabot.yml.hold
12+
#
13+
14+
######################
15+
# name of the action #
16+
######################
17+
name: automerge on pull request
18+
19+
###############
20+
# When to run #
21+
###############
22+
on: [pull_request]
23+
24+
#################
25+
# Start the job #
26+
#################
27+
jobs:
28+
automerge:
29+
name: automerge dependabot
30+
runs-on: ubuntu-latest
31+
if: github.actor == 'dependabot[bot]'
32+
steps:
33+
- name: Wait for CI/CT/CD to succeed
34+
uses: fountainhead/action-wait-for-check@v1.0.0
35+
id: wait-for-build
36+
with:
37+
token: ${{ secrets.GITHUB_TOKEN }}
38+
checkName: Deploy Docker Image - DEV
39+
ref: ${{ github.event.pull_request.head.sha || github.sha }}
40+
41+
- name: Wait for CI/CT/CD to succeed pt2
42+
uses: fountainhead/action-wait-for-check@v1.0.0
43+
id: wait-for-ci
44+
with:
45+
token: ${{ secrets.GITHUB_TOKEN }}
46+
checkName: Lint Code Base
47+
ref: ${{ github.event.pull_request.head.sha || github.sha }}
48+
49+
- name: Wait for CI/CT/CD to succeed pt3
50+
uses: fountainhead/action-wait-for-check@v1.0.0
51+
id: wait-for-ql
52+
with:
53+
token: ${{ secrets.GITHUB_TOKEN }}
54+
checkName: CodeQL
55+
ref: ${{ github.event.pull_request.head.sha || github.sha }}
56+
57+
- name: merge
58+
if: steps.wait-for-build.outputs.conclusion == 'success' || steps.wait-for-build.outputs.conclusion == 'skipped' && steps.wait-for-ci.outputs.conclusion == 'success'
59+
uses: actions/github-script@v3
60+
with:
61+
script: |
62+
github.pulls.createReview({
63+
owner: context.payload.repository.owner.login,
64+
repo: context.payload.repository.name,
65+
pull_number: context.payload.pull_request.number,
66+
event: 'APPROVE'
67+
})
68+
github.pulls.merge({
69+
owner: context.payload.repository.owner.login,
70+
repo: context.payload.repository.name,
71+
pull_number: context.payload.pull_request.number
72+
})
73+
---

‎.github/workflows/codeql-analysis.yml

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# For most projects, this workflow file will not need changing; you simply need
2+
# to commit it to your repository.
3+
#
4+
# You may wish to alter this file to override the set of languages analyzed,
5+
# or to provide custom queries or build logic.
6+
#
7+
# ******** NOTE ********
8+
# We have attempted to detect the languages in your repository. Please check
9+
# the `language` matrix defined below to confirm you have the correct set of
10+
# supported CodeQL languages.
11+
#
12+
name: "CodeQL"
13+
14+
on:
15+
push:
16+
branches: [ release, prod, dev ]
17+
pull_request:
18+
# The branches below must be a subset of the branches above
19+
branches: [ release, prod, dev ]
20+
schedule:
21+
- cron: '43 9 * * 3'
22+
23+
jobs:
24+
analyze:
25+
name: Analyze
26+
runs-on: ubuntu-latest
27+
permissions:
28+
actions: read
29+
contents: read
30+
security-events: write
31+
32+
strategy:
33+
fail-fast: false
34+
matrix:
35+
language: [ 'python' ]
36+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
37+
# Learn more:
38+
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
39+
40+
steps:
41+
- name: Checkout repository
42+
uses: actions/checkout@v2
43+
44+
# Initializes the CodeQL tools for scanning.
45+
- name: Initialize CodeQL
46+
uses: github/codeql-action/init@v1
47+
with:
48+
languages: ${{ matrix.language }}
49+
# If you wish to specify custom queries, you can do so here or in a config file.
50+
# By default, queries listed here will override any specified in a config file.
51+
# Prefix the list here with "+" to use these queries and those in the config file.
52+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
53+
54+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55+
# If this step fails, then you should remove it and run the build manually (see below)
56+
- name: Autobuild
57+
uses: github/codeql-action/autobuild@v1
58+
59+
# ℹ️ Command-line programs to run using the OS shell.
60+
# 📚 https://git.io/JvXDl
61+
62+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
63+
# and modify them (or add more) to build your code if your project
64+
# uses a compiled language
65+
66+
#- run: |
67+
# make bootstrap
68+
# make release
69+
70+
- name: Perform CodeQL Analysis
71+
uses: github/codeql-action/analyze@v1

‎.github/workflows/greetings.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Greetings
2+
on: [pull_request, issues]
3+
jobs:
4+
greeting:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/first-interaction@v1
8+
with:
9+
repo-token: ${{ secrets.GITHUB_TOKEN }}
10+
issue-message: 'This was your first issue! Thank you for contributing!'' first issue'
11+
pr-message: 'This was your first Pull Request! Thank you for contributing!'' first pr'

‎.github/workflows/linter.yml

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
###########################
3+
###########################
4+
## Linter GitHub Actions ##
5+
###########################
6+
###########################
7+
name: Lint Code Base
8+
9+
#
10+
# Documentation:
11+
# https://help.github.com/en/articles/workflow-syntax-for-github-actions
12+
#
13+
14+
#############################
15+
# Start the job on all push #
16+
#############################
17+
on:
18+
push:
19+
branches: [dev, prod, release]
20+
pull_request:
21+
branches: [dev, prod, release]
22+
23+
###############
24+
# Set the Job #
25+
###############
26+
jobs:
27+
build:
28+
# Name the Job
29+
name: Lint Code Base
30+
# Set the agent to run on
31+
runs-on: ubuntu-latest
32+
33+
##################
34+
# Load all steps #
35+
##################
36+
steps:
37+
##########################
38+
# Checkout the code base #
39+
##########################
40+
- name: Checkout Code
41+
uses: actions/checkout@v2
42+
with:
43+
# Full git history is needed to get a proper list of changed files within `super-linter`
44+
fetch-depth: 0
45+
46+
################################
47+
# Run Linter against code base #
48+
################################
49+
# - name: Lint Code Base
50+
# uses: github/super-linter@v4
51+
# env:
52+
# VALIDATE_ALL_CODEBASE: false
53+
# DEFAULT_BRANCH: prod
54+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55+
################################
56+
# Run Linter against code base #
57+
################################
58+
- name: Lint Code Base
59+
uses: docker://ghcr.io/github/super-linter:slim-v4
60+
env:
61+
VALIDATE_ALL_CODEBASE: false
62+
DEFAULT_BRANCH: prod
63+
LOG_LEVEL: WARN
64+
FILTER_REGEX_EXCLUDE: '.*(\.github|\.vscode).*'
65+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
66+

‎.github/workflows/release-drafter.yml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Release Drafter
2+
on:
3+
push:
4+
branches:
5+
- release
6+
jobs:
7+
update_release_draft:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: release-drafter/release-drafter@v5
11+
env:
12+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

‎.github/workflows/stale.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Mark stale issues and pull requests
2+
on:
3+
schedule:
4+
- cron: "0 0 * * *"
5+
jobs:
6+
stale:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/stale@v4
10+
with:
11+
repo-token: ${{ secrets.GITHUB_TOKEN }}
12+
stale-issue-label: 'no-issue-activity'
13+
stale-pr-label: 'no-pr-activity'
14+
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
15+
stale-pr-message: 'This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.'
16+
close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity.'
17+
days-before-stale: 30
18+
days-before-close: 5
19+
days-before-pr-close: -1

‎.github/workflows/test-and-build.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: pytester-cov workflow
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
8+
runs-on: ubuntu-latest
9+
env:
10+
COVERAGE_SINGLE: 60
11+
COVERAGE_TOTAL: 60
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Set up Python 3.9
16+
uses: actions/setup-python@v2
17+
with:
18+
python-version: 3.9
19+
20+
- name: Update pip
21+
run: python -m pip install --upgrade pip
22+
23+
- name: Setup Poetry
24+
uses: abatilo/actions-poetry@v2.1.2
25+
with:
26+
poetry-version: 1.1.6
27+
28+
- name: Install dependencies
29+
run: |
30+
poetry export --without-hashes --dev --format requirements.txt --output requirements.txt
31+
pip3 install -r requirements.txt
32+
33+
- name: Build coverage file
34+
run: |
35+
pytest --cache-clear --cov . > pytest-coverage.txt
36+
- name: pytest-coverage-commentator
37+
uses: coroo/pytest-coverage-commentator@v1.0.2
38+
with:
39+
pytest-coverage: pytest-coverage.txt

‎.gitignore

+188
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
2+
# Created by https://www.gitignore.io/api/windows,macos,linux,git,python
3+
4+
.vscode/
5+
6+
### Git ###
7+
*.orig
8+
9+
### Linux ###
10+
*~
11+
12+
# temporary files which can be created if a process still has a handle open of a deleted file
13+
.fuse_hidden*
14+
15+
# KDE directory preferences
16+
.directory
17+
18+
# Linux trash folder which might appear on any partition or disk
19+
.Trash-*
20+
21+
# .nfs files are created when an open file is removed but is still being accessed
22+
.nfs*
23+
24+
### macOS ###
25+
# General
26+
.DS_Store
27+
.AppleDouble
28+
.LSOverride
29+
30+
# Icon must end with two \r
31+
Icon
32+
33+
# Thumbnails
34+
._*
35+
36+
# Files that might appear in the root of a volume
37+
.DocumentRevisions-V100
38+
.fseventsd
39+
.Spotlight-V100
40+
.TemporaryItems
41+
.Trashes
42+
.VolumeIcon.icns
43+
.com.apple.timemachine.donotpresent
44+
45+
# Directories potentially created on remote AFP share
46+
.AppleDB
47+
.AppleDesktop
48+
Network Trash Folder
49+
Temporary Items
50+
.apdisk
51+
52+
### Python ###
53+
# Byte-compiled / optimized / DLL files
54+
__pycache__/
55+
*.py[cod]
56+
*$py.class
57+
58+
# C extensions
59+
*.so
60+
61+
# Distribution / packaging
62+
.Python
63+
build/
64+
develop-eggs/
65+
dist/
66+
downloads/
67+
eggs/
68+
.eggs/
69+
lib/
70+
lib64/
71+
parts/
72+
sdist/
73+
var/
74+
wheels/
75+
*.egg-info/
76+
.installed.cfg
77+
*.egg
78+
MANIFEST
79+
80+
# PyInstaller
81+
# Usually these files are written by a python script from a template
82+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
83+
*.manifest
84+
*.spec
85+
86+
# Installer logs
87+
pip-log.txt
88+
pip-delete-this-directory.txt
89+
90+
# Unit test / coverage reports
91+
htmlcov/
92+
.tox/
93+
.coverage
94+
.coverage.*
95+
.cache
96+
nosetests.xml
97+
coverage.xml
98+
*.cover
99+
.hypothesis/
100+
.pytest_cache/
101+
test-output.xml
102+
103+
# Translations
104+
*.mo
105+
*.pot
106+
107+
# Django stuff:
108+
*.log
109+
local_settings.py
110+
db.sqlite3
111+
112+
# Flask stuff:
113+
instance/
114+
.webassets-cache
115+
116+
# Scrapy stuff:
117+
.scrapy
118+
119+
# Sphinx documentation
120+
docs/_build/
121+
122+
# PyBuilder
123+
target/
124+
125+
# Jupyter Notebook
126+
.ipynb_checkpoints
127+
128+
# pyenv
129+
.python-version
130+
131+
# celery beat schedule file
132+
celerybeat-schedule
133+
134+
# SageMath parsed files
135+
*.sage.py
136+
137+
# Environments
138+
.env
139+
.venv
140+
env/
141+
venv/
142+
ENV/
143+
env.bak/
144+
venv.bak/
145+
146+
# Spyder project settings
147+
.spyderproject
148+
.spyproject
149+
150+
# Rope project settings
151+
.ropeproject
152+
153+
# mkdocs documentation
154+
/site
155+
156+
# mypy
157+
.mypy_cache/
158+
159+
### Python Patch ###
160+
.venv/
161+
162+
### Windows ###
163+
# Windows thumbnail cache files
164+
Thumbs.db
165+
ehthumbs.db
166+
ehthumbs_vista.db
167+
168+
# Dump file
169+
*.stackdump
170+
171+
# Folder config file
172+
[Dd]esktop.ini
173+
174+
# Recycle Bin used on file shares
175+
$RECYCLE.BIN/
176+
177+
# Windows Installer files
178+
*.cab
179+
*.msi
180+
*.msix
181+
*.msm
182+
*.msp
183+
184+
# Windows shortcuts
185+
*.lnk
186+
187+
188+
# End of https://www.gitignore.io/api/windows,macos,linux,git,python

‎.pre-commit-config.yaml

+115
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
repos:
2+
- repo: https://github.com/asottile/seed-isort-config
3+
rev: v2.2.0
4+
hooks:
5+
- id: seed-isort-config
6+
log_file: logs/hooks.log
7+
- repo: https://github.com/pre-commit/mirrors-isort
8+
rev: v5.9.1
9+
hooks:
10+
- id: isort
11+
log_file: logs/hooks.log
12+
- repo: https://github.com/psf/black
13+
rev: 21.6b0
14+
hooks:
15+
- id: black
16+
language_version: python3
17+
log_file: logs/hooks.log
18+
description: "Black: The uncompromising Python code formatter"
19+
- repo: https://gitlab.com/pycqa/flake8
20+
rev: 3.9.2
21+
hooks:
22+
- id: flake8
23+
log_file: logs/hooks.log
24+
- repo: https://github.com/jendrikseipp/vulture
25+
rev: 'v2.3'
26+
hooks:
27+
- id: vulture
28+
log_file: logs/hooks.log
29+
- repo: https://github.com/pre-commit/pre-commit-hooks
30+
rev: v4.0.1
31+
hooks:
32+
- id: trailing-whitespace
33+
log_file: logs/hooks.log
34+
exclude: img/interrogate_badge.svg
35+
- id: end-of-file-fixer
36+
log_file: logs/hooks.log
37+
exclude: img/interrogate_badge.svg
38+
- id: check-docstring-first
39+
log_file: logs/hooks.log
40+
- id: requirements-txt-fixer
41+
log_file: logs/hooks.log
42+
- id: check-added-large-files
43+
log_file: logs/hooks.log
44+
- id: check-json
45+
log_file: logs/hooks.log
46+
exclude: .vscode/settings.json
47+
- id: check-yaml
48+
log_file: logs/hooks.log
49+
- id: check-toml
50+
log_file: logs/hooks.log
51+
- id: check-xml
52+
log_file: logs/hooks.log
53+
- id: debug-statements
54+
log_file: logs/hooks.log
55+
- id: check-shebang-scripts-are-executable
56+
log_file: logs/hooks.log
57+
- id: check-merge-conflict
58+
log_file: logs/hooks.log
59+
- id: check-symlinks
60+
log_file: logs/hooks.log
61+
- id: destroyed-symlinks
62+
log_file: logs/hooks.log
63+
- id: debug-statements
64+
log_file: logs/hooks.log
65+
- id: detect-private-key
66+
log_file: logs/hooks.log
67+
- id: no-commit-to-branch
68+
log_file: logs/hooks.log
69+
args: [--branch, prod]
70+
- repo: https://github.com/pre-commit/pygrep-hooks
71+
rev: v1.9.0
72+
hooks:
73+
- id: python-use-type-annotations
74+
log_file: logs/hooks.log
75+
- id: python-check-blanket-noqa
76+
log_file: logs/hooks.log
77+
- id: python-check-blanket-type-ignore
78+
log_file: logs/hooks.log
79+
- id: python-check-mock-methods
80+
log_file: logs/hooks.log
81+
- id: python-no-eval
82+
log_file: logs/hooks.log
83+
- id: python-no-log-warn
84+
log_file: logs/hooks.log
85+
- id: python-use-type-annotations
86+
log_file: logs/hooks.log
87+
- id: rst-backticks
88+
log_file: logs/hooks.log
89+
- id: rst-directive-colons
90+
log_file: logs/hooks.log
91+
- id: rst-inline-touching-normal
92+
log_file: logs/hooks.log
93+
- id: text-unicode-replacement-char
94+
log_file: logs/hooks.log
95+
- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
96+
rev: 2.3.5
97+
hooks:
98+
- id: editorconfig-checker
99+
- repo: https://github.com/econchick/interrogate
100+
rev: 1.4.0
101+
hooks:
102+
- id: interrogate
103+
- repo: https://github.com/asottile/blacken-docs
104+
rev: v1.10.0
105+
hooks:
106+
- id: blacken-docs
107+
additional_dependencies: [black==20.8b1]
108+
109+
# - id: pytest-cov
110+
# log_file: logs/hooks.log
111+
# name: pytest-cov
112+
# entry: poetry run pytest --cov src --cov-report=html
113+
# language: system
114+
# pass_filenames: false
115+
# always_run: true

‎AUTHORS.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Authors
2+
3+
## Core Contributor
4+
5+
---
6+
7+
[Bryan Jenks](https://github.com/tallguyjenks) -- &lt;bryanjenks@protonmail.com&gt;
8+
9+
---
10+
11+
## Logo Designer
12+
13+
---
14+
15+
## Contributors
16+
17+
---
18+
19+
None yet. [Why not be the first?](CONTRIBUTING.md)

‎CODE_OF_CONDUCT.md

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
---
6+
7+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
8+
9+
---
10+
11+
## Our Standards
12+
13+
---
14+
15+
Examples of behavior that contributes to creating a positive environment include:
16+
17+
- Using welcoming and inclusive language
18+
- Being respectful of differing viewpoints and experiences
19+
- Gracefully accepting constructive criticism
20+
- Focusing on what is best for the community
21+
- Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
- The use of sexualized language or imagery and unwelcome sexual attention or advances
26+
- Trolling, insulting/derogatory comments, and personal or political attacks
27+
- Public or private harassment
28+
- Publishing others' private information, such as a physical or electronic address, without explicit permission
29+
- Other conduct which could reasonably be considered inappropriate in a professional setting
30+
31+
---
32+
33+
## Our Responsibilities
34+
35+
---
36+
37+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
38+
39+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
40+
41+
---
42+
43+
## Scope
44+
45+
---
46+
47+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
48+
49+
---
50+
51+
## Enforcement
52+
53+
---
54+
55+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at <bryanjenks@protonmail.com>. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
56+
57+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
58+
59+
---
60+
61+
## Attribution
62+
63+
---
64+
65+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
66+
67+
[homepage]: http://contributor-covenant.org
68+
[version]: http://contributor-covenant.org/version/1/4/

‎CONTRIBUTING.md

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Contributing
2+
3+
Contributions are welcome, and they are greatly appreciated!
4+
5+
Every little bit helps, and credit will always be given.
6+
7+
---
8+
9+
## Types of Contributions
10+
11+
---
12+
13+
### Bug Reports, Feature Requests, and Feedback
14+
15+
---
16+
17+
1. Start a [Discussion][0] about your proposed changes.
18+
2. Create a [new project issue][1]! Try to be as descriptive as possible.
19+
20+
---
21+
22+
### Bug Fixes, New Features and Documentation
23+
24+
---
25+
26+
Create a [new merge/pull request][2]! Make sure to follow the guidelines:
27+
28+
---
29+
30+
## Merge/Pull Request Guidelines
31+
32+
---
33+
34+
1. Make sure to have atomic commits and contextual commit messages
35+
2. Make it easy to understand what you changed, and why
36+
37+
---
38+
39+
<!-- markdownlint-disable MD026 -->
40+
41+
## Thank You!
42+
43+
<!-- markdownlint-enable MD026 -->
44+
45+
---
46+
47+
I'll try to be as responsive as possible in reviewing and accepting pull requests.
48+
49+
I appreciate your contributions very much!
50+
51+
[0]: https://github.com/tallguyjenks/<REPO NAME>/discussions
52+
[1]: https://github.com/tallguyjenks/<REPO NAME>/issues/new
53+
[2]: https://github.com/tallguyjenks/<REPO NAME>/compare

‎LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2021 Bryan Jenks
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWA

‎README.md

+229
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
# <REPO NAME>
2+
3+
<!-- TODO For mass updates replace en-masse the <REPO URL> and <REPO NAME> snippets -->
4+
5+
<!-- Header & Preview Image -->
6+
7+
<h1 align="center">
8+
<img src="/images/<++>" height="50%" width="50%">
9+
</h1>
10+
11+
<!-- Shields -->
12+
<p align="center">
13+
<a href="https://github.com/tallguyjenks/<REPO NAME>/blob/master/LICENSE">
14+
<img src="https://img.shields.io/static/v1.svg?style=flat&label=License&message=MIT&logoColor=eceff4&logo=github&colorA=black&colorB=green"/>
15+
</a>
16+
<img src="https://img.shields.io/github/commit-activity/m/tallguyjenks/<REPO NAME>">
17+
<a href="https://github.com/tallguyjenks/<REPO NAME>/graphs/contributors">
18+
<img src="https://img.shields.io/github/contributors/tallguyjenks/<REPO NAME>">
19+
</a>
20+
<img src="https://img.shields.io/github/v/release/tallguyjenks/<REPO NAME>">
21+
</p>
22+
23+
<!-- Description -->
24+
25+
> <++>
26+
27+
<++>
28+
29+
---
30+
31+
## Table of Contents
32+
33+
---
34+
35+
- [<REPO NAME>](#repo-name)
36+
- [Table of Contents](#table-of-contents)
37+
- [Features](#features)
38+
- [Requirements](#requirements)
39+
- [Recommended](#recommended)
40+
- [Installation](#installation)
41+
- [Users](#users)
42+
- [Contributors](#contributors)
43+
- [Usage](#usage)
44+
- [Example](#example)
45+
- [Documentation](#documentation)
46+
- [Resources](#resources)
47+
- [Development](#development)
48+
- [Security](#security)
49+
- [Future](#future)
50+
- [History](#history)
51+
- [Community](#community)
52+
- [Credits](#credits)
53+
- [License](#license)
54+
55+
---
56+
57+
## Features
58+
59+
---
60+
61+
[Return To Top](#table-of-contents)
62+
63+
<++>
64+
65+
---
66+
67+
## Requirements
68+
69+
---
70+
71+
[Return To Top](#table-of-contents)
72+
73+
<++>
74+
75+
---
76+
77+
### Recommended
78+
79+
---
80+
81+
[Return To Top](#table-of-contents)
82+
83+
<++>
84+
85+
---
86+
87+
## Installation
88+
89+
---
90+
91+
[Return To Top](#table-of-contents)
92+
93+
<++>
94+
95+
---
96+
97+
### Users
98+
99+
---
100+
101+
[Return To Top](#table-of-contents)
102+
103+
<++>
104+
105+
See [Usage](#usage)
106+
107+
---
108+
109+
### Contributors
110+
111+
---
112+
113+
[Return To Top](#table-of-contents)
114+
115+
See [CONTRIBUTING](#contributing)
116+
117+
---
118+
119+
## Usage
120+
121+
---
122+
123+
[Return To Top](#table-of-contents)
124+
125+
<++>
126+
127+
---
128+
129+
### Example
130+
131+
---
132+
133+
[Return To Top](#table-of-contents)
134+
135+
<++>
136+
137+
---
138+
139+
## Documentation
140+
141+
---
142+
143+
[Return To Top](#table-of-contents)
144+
145+
<++>
146+
147+
---
148+
149+
## Resources
150+
151+
---
152+
153+
[Return To Top](#table-of-contents)
154+
155+
<++>
156+
157+
---
158+
159+
## Development
160+
161+
---
162+
163+
[Return To Top](#table-of-contents)
164+
165+
<++>
166+
167+
See [CONTRIBUTING](CONTRIBUTING.md)
168+
169+
---
170+
171+
### Security
172+
173+
---
174+
175+
[Return To Top](#table-of-contents)
176+
177+
See [SECURITY](SECURITY.md)
178+
179+
---
180+
181+
### Future
182+
183+
---
184+
185+
[Return To Top](#table-of-contents)
186+
187+
See [ROADMAP](ROADMAP.md)
188+
189+
---
190+
191+
### History
192+
193+
---
194+
195+
[Return To Top](#table-of-contents)
196+
197+
See [RELEASES](https://github.com/tallguyjenks/<REPO NAME>/releases)
198+
199+
---
200+
201+
### Community
202+
203+
---
204+
205+
[Return To Top](#table-of-contents)
206+
207+
<++>
208+
209+
See [CODE OF CONDUCT](CODE_OF_CONDUCT.md)
210+
211+
---
212+
213+
## Credits
214+
215+
---
216+
217+
[Return To Top](#table-of-contents)
218+
219+
See [AUTHORS](AUTHORS.md)
220+
221+
---
222+
223+
## License
224+
225+
---
226+
227+
[Return To Top](#table-of-contents)
228+
229+
See [LICENSE](LICENSE)

‎ROADMAP.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Road Map
2+
3+
## Development Status
4+
5+
---
6+
7+
- ![planning](https://img.shields.io/badge/status-planning-lightgrey.svg?longCache=true)
8+
- [v0.0.3](https://github.com/tallguyjenks/<REPO NAME>/milestone/3) Python App MVP SQLite3 Database management and storage
9+
- [v0.0.2](https://github.com/tallguyjenks/<REPO NAME>/milestone/2) Python App MVP is created
10+
- ![alpha](https://img.shields.io/badge/status-alpha-yellow.svg?longCache=true)
11+
- [v0.0.1](https://github.com/tallguyjenks/<REPO NAME>/milestone/1) Initial Architecture Setup
12+
- ![beta](https://img.shields.io/badge/status-beta-brightgreen.svg?longCache=true)
13+
- ![stable](https://img.shields.io/badge/status-stable-blue.svg?longCache=true)
14+
- ![mature](https://img.shields.io/badge/status-mature-8A2BE2.svg?longCache=true)
15+
- ![inactive](https://img.shields.io/badge/status-inactive-lightgrey.svg?longCache=true)
16+
17+
---

‎SECURITY.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
---
6+
7+
This project supports only the latest version with security updates. However, we'll do our best to help and answer questions about older versions.
8+
9+
---
10+
11+
## Reporting a Vulnerability
12+
13+
---
14+
15+
Contact [Bryan Jenks](https://github.com/tallguyjenks) to report a security vulnerability. You will be thanked!

‎pyproject.toml

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
[tool.poetry]
2+
name = "pyrm"
3+
version = "0.1.0"
4+
description = "Python Personal Relationship Management"
5+
authors = ["Bryan Jenks <bryanjenks@protonmail.com>"]
6+
license = "MIT"
7+
8+
[tool.poetry.dependencies]
9+
python = "^3.9"
10+
loguru = "^0.5.3"
11+
12+
[tool.poetry.dev-dependencies]
13+
pre-commit = "^2.14.0"
14+
pytest = "^6.2.4"
15+
pytest-cov = "^2.12.1"
16+
pytest-azurepipelines = "^0.8.0"
17+
18+
[build-system]
19+
requires = ["poetry-core>=1.0.0"]
20+
build-backend = "poetry.core.masonry.api"
21+
22+
[tool.black]
23+
line-length = 88
24+
include = '\.pyi?$'
25+
exclude = '''
26+
/(
27+
\.git
28+
| \.hg
29+
| \.mypy_cache
30+
| \.tox
31+
| \.venv
32+
| _build
33+
| buck-out
34+
| build
35+
| dist
36+
| docs
37+
| notes
38+
)/
39+
'''
40+
41+
[tool.isort]
42+
line_length = 88
43+
multi_line_output = 3
44+
include_trailing_comma = true
45+
skip_glob = [ "docs", "notes", "img" ]
46+
known_third_party = ["loguru", "pytest"]
47+
48+
[tool.vulture]
49+
exclude = []
50+
ignore_decorators = ["@app.route", "@require_*"]
51+
ignore_names = []
52+
make_whitelist = true
53+
min_confidence = 80
54+
paths = ["pyrm/"]
55+
sort_by_size = true
56+
verbose = false
57+
58+
[tool.interrogate]
59+
ignore-init-method = false
60+
ignore-init-module = false
61+
ignore-magic = false
62+
ignore-semiprivate = false
63+
ignore-private = false
64+
ignore-property-decorators = false
65+
ignore-module = false
66+
ignore-nested-functions = false
67+
ignore-nested-classes = false
68+
ignore-setters = false
69+
fail-under = 95
70+
exclude = ["setup.py", "docs", "build"]
71+
ignore-regex = ["^get$", "^mock_.*", ".*BaseClass.*"]
72+
verbose = 2
73+
quiet = false
74+
whitelist-regex = []
75+
color = true
76+
generate-badge = "img"
77+
badge-format = "svg"

0 commit comments

Comments
 (0)
This repository has been archived.