From 0b707b16be899149d9822e7d052ce111c5b3eb85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 15:45:26 +0000 Subject: [PATCH 01/43] chore(deps): Bump urllib3 from 2.0.6 to 2.0.7 Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.6 to 2.0.7. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.0.6...2.0.7) --- updated-dependencies: - dependency-name: urllib3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- poetry.lock | 76 ++++++++++------------------------------------------- 1 file changed, 14 insertions(+), 62 deletions(-) diff --git a/poetry.lock b/poetry.lock index 75e46cd..82f53c6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -23,7 +22,6 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "black" version = "23.9.1" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -68,7 +66,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -80,7 +77,6 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -145,7 +141,6 @@ pycparser = "*" name = "charset-normalizer" version = "3.3.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -245,7 +240,6 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -260,7 +254,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -272,7 +265,6 @@ files = [ name = "cryptography" version = "41.0.4" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -318,7 +310,6 @@ test-randomorder = ["pytest-randomly"] name = "deprecated" version = "1.2.14" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -336,7 +327,6 @@ dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] name = "et-xmlfile" version = "1.1.0" description = "An implementation of lxml.xmlfile for the standard library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -348,7 +338,6 @@ files = [ name = "execnet" version = "2.0.2" description = "execnet: rapid multi-Python deployment" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -363,7 +352,6 @@ testing = ["hatch", "pre-commit", "pytest", "tox"] name = "hypothesis" version = "6.87.3" description = "A library for property-based testing" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -398,7 +386,6 @@ zoneinfo = ["backports.zoneinfo (>=0.2.1)", "tzdata (>=2023.3)"] name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -410,7 +397,6 @@ files = [ name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -422,7 +408,6 @@ files = [ name = "isort" version = "5.12.0" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -440,7 +425,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "markdown-it-py" version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -465,7 +449,6 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -477,7 +460,6 @@ files = [ name = "mslex" version = "0.3.0" description = "shlex for windows" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -489,7 +471,6 @@ files = [ name = "mypy" version = "1.5.1" description = "Optional static typing for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -535,7 +516,6 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -547,7 +527,6 @@ files = [ name = "numpy" version = "1.26.0" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = "<3.13,>=3.9" files = [ @@ -589,7 +568,6 @@ files = [ name = "openpyxl" version = "3.1.2" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -604,7 +582,6 @@ et-xmlfile = "*" name = "packaging" version = "23.2" description = "Core utilities for Python packages" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -616,7 +593,6 @@ files = [ name = "pandas" version = "2.1.1" description = "Powerful data structures for data analysis, time series, and statistics" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -684,7 +660,6 @@ xml = ["lxml (>=4.8.0)"] name = "pandas-stubs" version = "2.1.1.230928" description = "Type annotations for pandas" -category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -700,7 +675,6 @@ types-pytz = ">=2022.1.1" name = "pathspec" version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -712,7 +686,6 @@ files = [ name = "platformdirs" version = "3.11.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -728,7 +701,6 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co name = "pluggy" version = "1.3.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -744,7 +716,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pprintpp" version = "0.4.0" description = "A drop-in replacement for pprint that's actually pretty" -category = "dev" optional = false python-versions = "*" files = [ @@ -756,7 +727,6 @@ files = [ name = "psutil" version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -783,7 +753,6 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "pycparser" version = "2.21" description = "C parser in Python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -795,7 +764,6 @@ files = [ name = "pygithub" version = "2.1.1" description = "Use the full Github API v3" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -816,7 +784,6 @@ urllib3 = ">=1.26.0" name = "pygments" version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -831,7 +798,6 @@ plugins = ["importlib-metadata"] name = "pyjwt" version = "2.8.0" description = "JSON Web Token implementation in Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -852,7 +818,6 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pynacl" version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -879,7 +844,6 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] name = "pytest" version = "7.4.2" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -900,7 +864,6 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-clarity" version = "1.0.1" description = "A plugin providing an alternative, colourful diff output for failing assertions." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -916,7 +879,6 @@ rich = ">=8.0.0" name = "pytest-pretty" version = "1.2.0" description = "pytest plugin for printing summary data as I want it" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -932,7 +894,6 @@ rich = ">=12" name = "pytest-randomly" version = "3.15.0" description = "Pytest plugin to randomly order tests and control random.seed." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -947,7 +908,6 @@ pytest = "*" name = "pytest-xdist" version = "3.3.1" description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -968,7 +928,6 @@ testing = ["filelock"] name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -983,7 +942,6 @@ six = ">=1.5" name = "pytz" version = "2023.3.post1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -995,7 +953,6 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1004,6 +961,7 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -1011,8 +969,15 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -1029,6 +994,7 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -1036,6 +1002,7 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -1045,7 +1012,6 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1067,7 +1033,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rich" version = "13.6.0" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -1086,7 +1051,6 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] name = "ruff" version = "0.0.277" description = "An extremely fast Python linter, written in Rust." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1113,7 +1077,6 @@ files = [ name = "shellingham" version = "1.5.3" description = "Tool to Detect Surrounding Shell" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1125,7 +1088,6 @@ files = [ name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1137,7 +1099,6 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" -category = "dev" optional = false python-versions = "*" files = [ @@ -1149,7 +1110,6 @@ files = [ name = "taskipy" version = "1.12.0" description = "tasks runner for python projects" -category = "dev" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -1167,7 +1127,6 @@ tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version >= \"3.7\" and py name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1179,7 +1138,6 @@ files = [ name = "typer" version = "0.9.0" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1204,7 +1162,6 @@ test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6. name = "types-pytz" version = "2023.3.1.1" description = "Typing stubs for pytz" -category = "dev" optional = false python-versions = "*" files = [ @@ -1216,7 +1173,6 @@ files = [ name = "types-pyyaml" version = "6.0.12.12" description = "Typing stubs for PyYAML" -category = "dev" optional = false python-versions = "*" files = [ @@ -1228,7 +1184,6 @@ files = [ name = "typing-extensions" version = "4.8.0" description = "Backported and Experimental Type Hints for Python 3.8+" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1240,7 +1195,6 @@ files = [ name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ @@ -1250,14 +1204,13 @@ files = [ [[package]] name = "urllib3" -version = "2.0.6" +version = "2.0.7" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.6-py3-none-any.whl", hash = "sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2"}, - {file = "urllib3-2.0.6.tar.gz", hash = "sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"}, + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, ] [package.extras] @@ -1270,7 +1223,6 @@ zstd = ["zstandard (>=0.18.0)"] name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ From cbd252e0d8bb3eb2f4fd3a5c2c3644cb3653c9b0 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 09:24:54 -0500 Subject: [PATCH 02/43] adding .github folder --- .github/workflows/build.yml | 118 ++++++++++++++++++ .github/workflows/publish.yml | 34 +++++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 174 bytes cellveyor/__pycache__/main.cpython-311.pyc | Bin 0 -> 5151 bytes 4 files changed, 152 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/publish.yml create mode 100644 cellveyor/__pycache__/__init__.cpython-311.pyc create mode 100644 cellveyor/__pycache__/main.cpython-311.pyc diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f2dbb16 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,118 @@ +# Basic workflow +name: build + +# Use more columns for terminal output +env: + COLUMNS: 120 + PYTHONIOENCODING: utf8 + +# Controls when the action will run +# Workflow begins with push or PR events +# Focuses on the master branch only +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# Create one single job +# This job performs all of the necessary checks +jobs: + build: + # Use the latest version of Ubuntu, MacOS, and Windows + # Use the latest and most stable version of Python + # Important: test coverage monitoring and reporting + # through a badge and the GitHub Actions job summary + # only takes place with the Linux operating system. + # Important: the MacOS and Windows operating systems + # have test coverage calculation take place but they + # do not report the test coverage beyond its display + # inside of the GitHub Actions panel for that job. + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + python-version: ["3.11"] + include: + - os: macos-latest + python-version: "3.11" + - os: windows-latest + python-version: "3.11" + # Define the workflow steps + steps: + # Checkout the code of the repository + - name: Check out Repository Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + # Run the mdl linting tool + # Refers to .mdlrc file in repository + - name: Run Markdown Linting + if: matrix.os == 'ubuntu-latest' + uses: actionshub/markdownlint@main + # Setup Python for the current language version + - name: Setup Python ${{ matrix.python-version }} + if: always() + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + # Install pip + - name: Install Pip + if: always() + run: | + python -m pip install --upgrade pip + # Install poetry + - name: Install Poetry + if: always() + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: 1.4.0 + # Install dependencies + - name: Install dependencies + if: always() + run: | + poetry install + # Run the linters + - name: Run Linters + if: always() + run: | + poetry run task lint + # Run the program + - name: Run program + if: always() + run: | + poetry run chasten analyze chasten --config $PWD/.chasten/ --debug-level ERROR --debug-dest CONSOLE --search-path . + # Run the tests + - name: Run Tests + if: always() + run: | + poetry run task test + # Run and collect the test coverage + # Important: only run and collect test coverage monitoring on Linux + - name: Run and Collect Test Coverage - Linux Only + if: always() && matrix.os == 'ubuntu-latest' + run: | + poetry run task test-coverage-silent > coverage.txt + # Display the Coverage Report + # Important: only report the monitored test coverage on Linux + - name: Display Collected Test Coverage - Linux Only + if: always() && matrix.os == 'ubuntu-latest' + run: | + export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])") + echo "total=$TOTAL" >> $GITHUB_ENV + echo "### Total coverage: ${TOTAL}%" >> $GITHUB_STEP_SUMMARY + CURRENT_GITHUB_STEP_SUMMARY="\`\`\`\n$(cat coverage.txt)\n\`\`\`" + echo "$CURRENT_GITHUB_STEP_SUMMARY" >> $GITHUB_STEP_SUMMARY + # Run and display the test coverage + # If the current operating system is MacOS, then only run test + # coverage monitoring and display it inside of the GitHub Actions + # panel. This allows for test coverage to be calculated for each + # operating system. However, coverage is only reported for Linux + # through the badge and through the GitHub job summary. Do not + # run any test coverage monitoring in Windows because it seems + # to be much slower and cause hypothesis-based tests to fail. + - name: Run and Report Test Coverage - MacOS Only + if: always() && matrix.os == 'macOS' + run: | + poetry run task test-coverage diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..7579d97 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,34 @@ +name: publish +on: + push: + tags: + - '*' +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 + with: + python-version: 3.11 + - run: | + pip install poetry + poetry build + - uses: actions/upload-artifact@v3 + with: + path: ./dist + + pypi-publish: + needs: ['build'] + environment: 'publish' + + name: Upload Release to PyPI + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v3 + - name: Publish Package Distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages_dir: artifact/ diff --git a/cellveyor/__pycache__/__init__.cpython-311.pyc b/cellveyor/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..486a5722ccea3391584419ebee8e202852597b24 GIT binary patch literal 174 zcmZ3^%ge<81WjK(QbF`%5CH>>P{wCAAY(d13PUi1CZpdivR!s literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/main.cpython-311.pyc b/cellveyor/__pycache__/main.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f5e23d68ed462b84496d3bb0e6565eb99af9beb GIT binary patch literal 5151 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 Date: Mon, 6 Nov 2023 09:28:49 -0500 Subject: [PATCH 03/43] adding template for images folder --- .github/images/test-image .md | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/images/test-image .md diff --git a/.github/images/test-image .md b/.github/images/test-image .md new file mode 100644 index 0000000..4577989 --- /dev/null +++ b/.github/images/test-image .md @@ -0,0 +1 @@ +TODO: Add Cellveyor logo \ No newline at end of file From 9bccaaee19d4f13f47eb9d1546495c87bcc931c9 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 09:33:34 -0500 Subject: [PATCH 04/43] changing Run program code --- .github/workflows/build.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f2dbb16..f9671df 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,19 @@ jobs: - name: Run program if: always() run: | - poetry run chasten analyze chasten --config $PWD/.chasten/ --debug-level ERROR --debug-dest CONSOLE --search-path . + poetry run cellveyor --spreadsheet-directory \ +/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ +--sheet-name Main \ +--key-attribute "Student GitHub" \ +--key-value "gkapfham" \ +--column-regexp "^(Summary Grade|Final Grade) .*$" \ +--feedback-regexp "Summary Grade 1 - Feedback" \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/all/feedback.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/developer-development/feedback-overall-course-assessment.yml \ +--github-token \ +--github-organization Allegheny-Computer-Science-203-F2023 \ +--github-repository-prefix computer-science-203-fall-2023-course-assessment \ +--transfer-report # Run the tests - name: Run Tests if: always() From f653ffb425c1d33eb6706820465c8540c3437ad9 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 09:47:28 -0500 Subject: [PATCH 05/43] change run command --- .github/workflows/build.yml | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f9671df..4ab7071 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,19 +82,7 @@ jobs: - name: Run program if: always() run: | - poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ ---sheet-name Main \ ---key-attribute "Student GitHub" \ ---key-value "gkapfham" \ ---column-regexp "^(Summary Grade|Final Grade) .*$" \ ---feedback-regexp "Summary Grade 1 - Feedback" \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/all/feedback.yml \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/developer-development/feedback-overall-course-assessment.yml \ ---github-token \ ---github-organization Allegheny-Computer-Science-203-F2023 \ ---github-repository-prefix computer-science-203-fall-2023-course-assessment \ ---transfer-report + poetry run cellveyor # Run the tests - name: Run Tests if: always() From d892a3d5f5339344fd5e66c98c1579705d39bbdb Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 09:50:11 -0500 Subject: [PATCH 06/43] change run command --- .github/workflows/build.yml | 2 +- cellveyor/__pycache__/data.cpython-311.pyc | Bin 0 -> 1710 bytes cellveyor/__pycache__/filesystem.cpython-311.pyc | Bin 0 -> 2496 bytes cellveyor/__pycache__/report.cpython-311.pyc | Bin 0 -> 4141 bytes cellveyor/__pycache__/transfer.cpython-311.pyc | Bin 0 -> 4113 bytes 5 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 cellveyor/__pycache__/data.cpython-311.pyc create mode 100644 cellveyor/__pycache__/filesystem.cpython-311.pyc create mode 100644 cellveyor/__pycache__/report.cpython-311.pyc create mode 100644 cellveyor/__pycache__/transfer.cpython-311.pyc diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4ab7071..a7f19d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,7 @@ jobs: - name: Run program if: always() run: | - poetry run cellveyor + poetry run cellveyor --help # Run the tests - name: Run Tests if: always() diff --git a/cellveyor/__pycache__/data.cpython-311.pyc b/cellveyor/__pycache__/data.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..258862555c56f3642e4b62330ac0bb9ba0811b81 GIT binary patch literal 1710 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 HEEE3#&*OE~ literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/report.cpython-311.pyc b/cellveyor/__pycache__/report.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..416adbe08104fd9110d8ea401467bb8a7d36d096 GIT binary patch literal 4141 zcmai0U2GHC6~5yc+vDFjiDSoc2$N8jIGaEI%9f@;NF1`w4>YFR;w@_#-wAlJJ=UE` z*ra1As(A29JY-uckWkb-6uK24@lYgQD)EBE3(`2Ugf&v7NEHwJW<+_(Q_mg$#birI zcfR{~?m6e4d+xdCZ!VV|!S{#v)8bcM2>qLOYM;B>c&9_-4#FskFoR7gCT)tE(rlDv zXrE1SX>-&JZ7yoT=BO20qCB=nZJ3YRu`TMr_NWs(qAu)=y0I(TVncWzZV^4$Bbr2y z=vg!cY7!A{h4D7A6}Q8<9eZz@qiwhY#@axM8b5>ZIXf-I#)A&zlUNlKY`N>~&{d?lW^E-Xq!Sdo?lMWV{cN#Jr)H&2VH zl(f`maQV~i3YR!=0!kvtOX+l+tO#;KBBFe9O1D(@rMqfeW0)%Ltaq=AE4nQmzb?j7 zuop_NERjrtqx-CWw9Uf*E(34}sVK*(CY4!6WLRa?T}PNRtE}9ja;o_rQmTt-bq{Tr zR-w*unGTgxOpPg^+a>89qANGp3a!e)0Wqr=#xZW#1Z<&P6NN01mcbsldTc^+QHTq2 zR!k%plQ0UK62xy{KQcW&x`6JQnwP8$hgjV@AO6kk=ksAW#_`CsZjM|Sp9qI6gt|Rx zq2Qs=3IL``!l}fncI0b@lPxeQ7~jt6k!x^RP9dfuLIH)S(d2B{4AjcN5l^ezy`*l;3n z4_R0wQkpuALXw%Q!i}VI&2SV-40lq@#tDQ4EL>TE%Lhh~hxb^Z9n^aFQ-C|@D(wHV zFUNqsdvv7(%{%?hbju$>e+Tc@%~XCC0*YyPRA;GT^mYgWp#g8lK1S66`Poye{Rtyb zHQaybN`{&?xTFK>TYA0$B_3UQ!AHkDL# z^TheNxpAGHAD^dTAT2G6Art8anqASuFwZU(b?=X#Fk;*&;2o4i5X(%Pwb`axWgjukK9{oqZQZYT6RQ?%dc-~egFUQAy&S~O&3bP) zb+eaDqIKr-h2H^X&YI&DYlBkdRn&M8KhVXd+7!M)d)<&km|KT1rx*`@Wey^*vq5za zVY6xjv?#TwA0~mOskg!B>^SFC?Mi2j!qBsMFP!QCS=Qzqs?NRpsmQx^q{+IL zuU$3XsulCQlavo^?NavDC=pU!AI!Q{H#rNMeq_gBkDdmH|7#y>)jn>pN=L5c!?RFZ zu33^B%Y z9BPF`Dw%>rO6M?m(0EXF z%XD~rGQ6O>BEN=!w{WRKrCY0kf^<+GToNLy5yy1*R5(0&c6?%{N@$rnfBs^4A><(g zl;@`u1}O|tpy`9|fh_DgmTqLKd4sG6>hY)^hH8PyoXlYH8=Zw+=uqO~N%QCS(wK*Fgzs~v;X2-l>a>OnIYnL;H=X`u16=pEI#4aXIuGAqYLreMJY zUFig?L*VX2{R0~3-4;e)3n#XO6VD_~I8hMhi^9Cd?JM~Yz4i}o`3JS3sh7Xf{DTGm z`J(?kUEurVwQpq0H&XB&F8U6a(Q)(Xw-mm$=goQfO;7LUfz5QW?^vPdc(LcW#s|wz z zl@66NUy%d4_YQ;3t~LYKov{DD&r06D&ABIIFOQX3Q(xO#1n?gU>+W^BTUYSDRol1l z*bnez=!KwZLG3AA+*&2x?r=cy{MQ%v7jDx5i>v zO2lHiMOn#0_C#pRCp6^fmTWwO<1(RdD>+Dk-lodsGp-@MpyV?Ozo0$$=ox6ZA(ORb#%o?~k+$Y=cBWm^~1 zSw;XQXG@uddb{0!m%SUg%ilg#Hq%K9YWJ0`w8bNjx3a*FEViraV+|~ne literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/transfer.cpython-311.pyc b/cellveyor/__pycache__/transfer.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e30770828cd0d74f78a2edfc9a49fd5f0df437be GIT binary patch literal 4113 zcmb_fUu+Xc8lUy9*Xw_A{3js}N!S1Z%;6-EA`rCc1;>SykV2B)U5$`syqm<0?R96@ zKz!>v>vRuSiHAyeC(zNVQ6CKEaXb z7Py38a3%tRD-jgjiICt)^ax(DSLlM*2XD97yTl3p-!q9_LIC=fE-2c>UeMXXmZwPQ z7D7udp$EqH8Dl{&>>@Tm&Ix@W4-26M6bYA3F5*;PUJ@~%OW{>Px}J|-P06CbW3eD% zMdlTWPw{6n%DLiIUJzv^lTRrbDL?u>SuH|o%ycHLL}-nfDk>`)3nN#GS2dqm$8V&? z0vR4*HRqWWj!D^KF0TbHNK11uDObpfirA2G7qPUAMOoHdi{cHXA@wh2a$-E2Du7E3 zQILq{#at?r&*Ya)VUY%B{`2u4pHtE2)L6;J^WRe-c~0>S&7Vtb9AgQe(t^u|he-)9 zr}CMS@iAIoLr6Ya&L|RIOBS%Wl)0h#8k(Xk;(RJ6YAhC&BF?ADidG?Q@;*5Qa0{vE z4pJ-~)OV0d-9ewwWm=^{V{55EW3x1{9aL#HhQ*X3@+p3)n9Z*79~4vB%u)vS0|H96 zpyeS?+~JEd1c5JL=~_mBQ6Mw=DcHKvh)wgp_0Ie+r{<@V3$s%T=U}q{BMkO~3phX^ z2%wpZC7X*S+rp6~%g782)@mt@Q#M*y(+;JLZ%i6r`0_=~J;432Y7}1iO@Ip0yO3v3m7BTi1*ndl zCCJU_G_sHAF622<<)*({1o+#V0PwVFn4diX6G-zkzD$u;#eDNDG|qZbfTKK@Cf{lm zH#Cf$2*ufQEx!+UQ<$L6f&n#6uZ?zKoT2pF7J`EX%xj_wGisGp*UZuX}4$F zVUPIRC_C)^*etI#XQvk%;NQKbk7c`RKaR?*%C0wMt(gd^Os6-~=*qv!4%JcSR9fX) z^i*~#q4FYiOjfHe-G{Rpp=-9KTiq1K!i)?!}1)=#j?w_6n$Wp78{ z-uX?c8@`C`+yx4~hXl6l{*C+Qw`P5vx{hwp@1g6I6Ex&+132kklb0Ydu?uJ)I*MfG zy3HI(tWfYrG!aK>Pcv<#vf1`rVbauSDS8<=$>8(Rf{4>%UP&#BSAMOeJAYwn{=8;ixHuJyW7e?t zD?`N2%uUDV7B$Cod~s@Kb|K=yF}HEy8J4S?>W z<25c^=fYcDxW?_Sb7Xu=w!6j+*15sQJ}$&QMF5pqJ%n7nIvTNuZ};gO+I#r(q0fe@ z<7aBavHEaKN5jsr0aef7_R!cL-r0`+{2zPj(Mwg&;qMMz-0a?09eLyH-#(^ok*=o* zpz0aXJw4v=R(E7G#BYY8o1tTm9gIKl6anZ4c#uC_@8%zMA9&b(U~3m&4V}L`0zjVe z8M6Tv$s7Q^2|qmRLZN*+a(KZf3pTs^+H4I}L-9{U0P-A;nT?&c*v|C_tD#wV?w&R4 zzaJ;{skhDE%jSN>nSVb((S6_usgILLIU$ZlFb#N2!upgzOZLhZvGJor)SV+C#jUqr z0GcC}W~zZC*^$JJgh&YEg`)0A&p@9xpijDVx<#K2@-*++1-SHq;DaJuwE0Y)Z{ECH zQ5z+9?iAd$=OPYFJk{)rY_=?3p7b9WJde-;rwNZ=%a z5dsGY90Jg2S;0n9G8onf#h1wN%?QwQ?)97`6tm(aj=^wp%;hqmPE!=Mi6*OPavSZc zc0Su^y!z@#w>c;qFx3AIdXYC!aRNPa?g|5yKUDF;cDTAKEcAk*iVu2DPsI*BXBSi~ zatA98o%K;iHp2rtP3n`U&3f*VQE%Hh-41dcb;ABrRCqJcqtj4t!(2PmU~kV}-9cI$ z>L0qDUZ1$V^6`-FBoY^5UAmjJP$!fqKQ;OVh?`5(rh B_#yxR literal 0 HcmV?d00001 From 99f0865683a95ea0cd6d74503c3b5c6953bd79e5 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 18:08:53 -0500 Subject: [PATCH 07/43] run linting check --- tests/test_filesystem.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_filesystem.py b/tests/test_filesystem.py index c7a0774..391fec6 100644 --- a/tests/test_filesystem.py +++ b/tests/test_filesystem.py @@ -52,4 +52,3 @@ def test_fuzz_confirm_valid_directory_using_builds(directory: pathlib.Path) -> N def test_fuzz_confirm_valid_file_using_builds(file: pathlib.Path) -> None: """Confirm that the function does not crash.""" filesystem.confirm_valid_file(file=file) - From d8993f387e8ef1ffeb89bf6147b4f4457dbb55a5 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 18:18:24 -0500 Subject: [PATCH 08/43] removing lines --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a7f19d1..4813a00 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -115,4 +115,4 @@ jobs: - name: Run and Report Test Coverage - MacOS Only if: always() && matrix.os == 'macOS' run: | - poetry run task test-coverage + poetry run task test From 025e7029484a33ab338f4edf45dea1d914f34d3d Mon Sep 17 00:00:00 2001 From: Keven Michel Duverglas <112563981+KevenDuverglas@users.noreply.github.com> Date: Mon, 6 Nov 2023 18:29:20 -0500 Subject: [PATCH 09/43] Update README.md --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f8cb7cb..ecd9a38 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,18 @@ ``` poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ +/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file +CMPSC-203-Fall-2023-Gradebook.xlsx \ --sheet-name Main \ --key-attribute "Student GitHub" \ --key-value "gkapfham" \ --column-regexp "^(Summary Grade|Final Grade) .*$" \ --feedback-regexp "Summary Grade 1 - Feedback" \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/all/feedback.yml \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/developer-development/feedback-overall-course-assessment.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/ +feedback/all/feedback.yml \ +--feedback-file /home/gkapfham/working/teaching/github- +classroom/feedback/developer +-development/feedback-overall-course-assessment.yml \ --github-token \ --github-organization Allegheny-Computer-Science-203-F2023 \ --github-repository-prefix computer-science-203-fall-2023-course-assessment \ From f1eaccdfd0b68ea3c72c81d02cda2a7888119268 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 19:42:37 -0500 Subject: [PATCH 10/43] txt file --- .github/workflows/build.yml | 2 +- .../examples/16d7c7ec40d3aca4/38b060a751ac9638 | 0 .../examples/5bc8c92ccdf8bc8d/38b060a751ac9638 | 0 coverage.txt | 1 + tests/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 170 bytes .../test_filesystem.cpython-311-pytest-7.4.2.pyc | Bin 0 -> 5418 bytes 6 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .hypothesis/examples/16d7c7ec40d3aca4/38b060a751ac9638 create mode 100644 .hypothesis/examples/5bc8c92ccdf8bc8d/38b060a751ac9638 create mode 100644 coverage.txt create mode 100644 tests/__pycache__/__init__.cpython-311.pyc create mode 100644 tests/__pycache__/test_filesystem.cpython-311-pytest-7.4.2.pyc diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4813a00..a7f19d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -115,4 +115,4 @@ jobs: - name: Run and Report Test Coverage - MacOS Only if: always() && matrix.os == 'macOS' run: | - poetry run task test + poetry run task test-coverage diff --git a/.hypothesis/examples/16d7c7ec40d3aca4/38b060a751ac9638 b/.hypothesis/examples/16d7c7ec40d3aca4/38b060a751ac9638 new file mode 100644 index 0000000..e69de29 diff --git a/.hypothesis/examples/5bc8c92ccdf8bc8d/38b060a751ac9638 b/.hypothesis/examples/5bc8c92ccdf8bc8d/38b060a751ac9638 new file mode 100644 index 0000000..e69de29 diff --git a/coverage.txt b/coverage.txt new file mode 100644 index 0000000..574e044 --- /dev/null +++ b/coverage.txt @@ -0,0 +1 @@ +could not find task "test-coverage-silent" diff --git a/tests/__pycache__/__init__.cpython-311.pyc b/tests/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70f682d0009922c74012b09e3c9a0dbf1cecec27 GIT binary patch literal 170 zcmZ3^%ge<81WjK(QbF`%5CH>>P{wCAAY(d13PUi1CZpdPaY?a$e0*kJW=VX! oUP0wA4x8Nkl+v73yCPPgX(0QG`GLd-W=2NF4-7D(h#4pb0Bam47fK6rNqLe`6eC^`sHHr4)Lh3`5xmWdzD3lu;;C zGBRWE^eptZR58N~=~n$dX!8Ibem#u&+h$~8pw+jqr&Tk0+9eo4L!MQP_$}o=03NhJ z$logLeJwo_ucSwB7d`r3qQ^c%zJfBTmF(qZ*K}N!5vOXoraD`}syh#*Wt+~jQY7~!8vQmER&eyV%;_8EYrzIB(^hvgs|yWak(fy160EB1mJnL#!WA+ zB3FEJgcd}-hWyiBmE7Qtpam*}T{Wo#CmZr=peEM>RkW(q6z7f`ZDB#akYNOB%B*B4 z6gey3SHN8G@XH9giB=uPP@UQ3H{%j=27Iz3EnH3Z>xBI{p-(5SEWw*aFT7dQYXQGR zBXmz*0XJF=8et<+3tAFug

P5%Nju5xRx^lKidjBqMrLT2)p9MiiDtZ0p$BN_p18 zC0Go)tLo~KZd-w*~qO#a(TLbocz^wiO80-F0J$*J+`qqnMctjZt!qTN3>8c*NcL?@ z(U?A((1*m%EV8w%>6oOnqHfz7HWzWRQd-opN#fA0U8`EQYn2@mvMYda$bQY4uT*V= zLA5!%a!t3jvR*PtRCDxMlS&}HpD^`6>(4N*V3O9rM@qV@nKu`0z0BtmCJCX72980Z zqKV^F@gAxGpXg+JV}duh$Pd~ZCmg!|RDNxJnxC(f%)C)uGVz?PJL41ivllO4IXgBv zK9#?2fFIrO(taJXQ`jy4{bI!(KN&fSau@juB1h5~BojH>WF% ziv`+#gAfkx5F&)PgL(ZKOdP%4uio7K3e!D!rDuC9y7bl6{O6c%qL{90=7E^*>^MnD z3dki)j{^7*kaj=AM}a~1GB>fxosN=$PI_t(jxziTj-ob{F83ov^}6u^+-!AmjA%la z7$umyIbC5~EYS8Fgm7?&5FxxB%0+I=n2*vY|>CRgY3s~G?hbig^CGS%59+2Ix z+SeA**qieJqc3UsXy0i43m(kAZYD>(OQ!z4cKrKP;Fx_VCSv z+0YAo6oMNZE=j;WwKbd{{`d;r;tbSksJ3QPW7I zl|r(xMg}#Wbmn+s2R6!K^9F|hQAkvdLz-wx6P`5jSPI`d=t-$fS(Z-yGWVOk ziJBWcc&fT+{@lh{6+K{qMDeFnucIjgq c=YGCGC64`ml@&XrUHTXdqteHAx|w1A1q8sEF#rGn literal 0 HcmV?d00001 From 98d7c72bb648bb797e80d2b12c7ba6797b323ebb Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 19:53:29 -0500 Subject: [PATCH 11/43] command change --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a7f19d1..e7eef08 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,7 +93,7 @@ jobs: - name: Run and Collect Test Coverage - Linux Only if: always() && matrix.os == 'ubuntu-latest' run: | - poetry run task test-coverage-silent > coverage.txt + poetry run task test-silent > coverage.txt # Display the Coverage Report # Important: only report the monitored test coverage on Linux - name: Display Collected Test Coverage - Linux Only @@ -115,4 +115,4 @@ jobs: - name: Run and Report Test Coverage - MacOS Only if: always() && matrix.os == 'macOS' run: | - poetry run task test-coverage + poetry run task test-silent From a2e8ff02d6273c7efc4008b27f5d82d5b7867cb3 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 6 Nov 2023 19:59:19 -0500 Subject: [PATCH 12/43] deleting some files and adding a png --- .../38b060a751ac9638 => .github/images/cellveyor.png | 0 .github/images/test-image .md | 1 - .hypothesis/examples/5bc8c92ccdf8bc8d/38b060a751ac9638 | 0 coverage.txt | 1 - 4 files changed, 2 deletions(-) rename .hypothesis/examples/16d7c7ec40d3aca4/38b060a751ac9638 => .github/images/cellveyor.png (100%) delete mode 100644 .github/images/test-image .md delete mode 100644 .hypothesis/examples/5bc8c92ccdf8bc8d/38b060a751ac9638 delete mode 100644 coverage.txt diff --git a/.hypothesis/examples/16d7c7ec40d3aca4/38b060a751ac9638 b/.github/images/cellveyor.png similarity index 100% rename from .hypothesis/examples/16d7c7ec40d3aca4/38b060a751ac9638 rename to .github/images/cellveyor.png diff --git a/.github/images/test-image .md b/.github/images/test-image .md deleted file mode 100644 index 4577989..0000000 --- a/.github/images/test-image .md +++ /dev/null @@ -1 +0,0 @@ -TODO: Add Cellveyor logo \ No newline at end of file diff --git a/.hypothesis/examples/5bc8c92ccdf8bc8d/38b060a751ac9638 b/.hypothesis/examples/5bc8c92ccdf8bc8d/38b060a751ac9638 deleted file mode 100644 index e69de29..0000000 diff --git a/coverage.txt b/coverage.txt deleted file mode 100644 index 574e044..0000000 --- a/coverage.txt +++ /dev/null @@ -1 +0,0 @@ -could not find task "test-coverage-silent" From 92b4e6bde3524d95df0fe49e3b6cad7d89468bd4 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Fri, 10 Nov 2023 10:21:33 -0500 Subject: [PATCH 13/43] build badge --- .github/images/{cellveyor.png => cellveyor_logo.png} | 0 README.md | 2 ++ 2 files changed, 2 insertions(+) rename .github/images/{cellveyor.png => cellveyor_logo.png} (100%) diff --git a/.github/images/cellveyor.png b/.github/images/cellveyor_logo.png similarity index 100% rename from .github/images/cellveyor.png rename to .github/images/cellveyor_logo.png diff --git a/README.md b/README.md index ecd9a38..71e2760 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ ## Example Command +[![build](https://github.com/gkapfham/chasten/actions/workflows/build.yml/badge.svg)](https://github.com/KevenDuverglas/keven-cellveyor/blob/master/.github/workflows/build.yml) + ``` poetry run cellveyor --spreadsheet-directory \ /home/gkapfham/working/data/gradebook/2023 --spreadsheet-file From 359d5721c16692dbceb8e465f9b55a9fd03fd11e Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Fri, 10 Nov 2023 10:29:24 -0500 Subject: [PATCH 14/43] build badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71e2760..8d77dd5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Example Command -[![build](https://github.com/gkapfham/chasten/actions/workflows/build.yml/badge.svg)](https://github.com/KevenDuverglas/keven-cellveyor/blob/master/.github/workflows/build.yml) +[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://github.com/KevenDuverglas/keven-cellveyor/blob/master/.github/workflows/build.yml) ``` poetry run cellveyor --spreadsheet-directory \ From b8845e429923656d755fb6bbb31acfe64ae1e518 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Fri, 10 Nov 2023 10:32:16 -0500 Subject: [PATCH 15/43] testing badge --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e7eef08..0bca158 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,7 @@ jobs: - name: Run program if: always() run: | - poetry run cellveyor --help + poetry run cellveyo --help # Run the tests - name: Run Tests if: always() From 9390641cdc2fb9a2a3fde53fbd05f85e28e22131 Mon Sep 17 00:00:00 2001 From: Keven Michel Duverglas <112563981+KevenDuverglas@users.noreply.github.com> Date: Fri, 10 Nov 2023 10:37:03 -0500 Subject: [PATCH 16/43] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d77dd5..c7abc55 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Example Command -[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://github.com/KevenDuverglas/keven-cellveyor/blob/master/.github/workflows/build.yml) +[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml) ``` poetry run cellveyor --spreadsheet-directory \ From 3272496b43a620adab45d43c144bf1d6da2e7c31 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Fri, 10 Nov 2023 10:39:57 -0500 Subject: [PATCH 17/43] testing passed --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0bca158..e7eef08 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,7 @@ jobs: - name: Run program if: always() run: | - poetry run cellveyo --help + poetry run cellveyor --help # Run the tests - name: Run Tests if: always() From 1a20621cf4d9500b839f58659820c4dce0549b04 Mon Sep 17 00:00:00 2001 From: Keven Michel Duverglas <112563981+KevenDuverglas@users.noreply.github.com> Date: Fri, 10 Nov 2023 10:43:06 -0500 Subject: [PATCH 18/43] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7abc55..e255dc4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Example Command -[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml) +[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml ) ``` poetry run cellveyor --spreadsheet-directory \ From d93bd48b699e54ed3e48ab76b8db0f2817fc6998 Mon Sep 17 00:00:00 2001 From: Keven Michel Duverglas <112563981+KevenDuverglas@users.noreply.github.com> Date: Fri, 10 Nov 2023 10:43:21 -0500 Subject: [PATCH 19/43] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e255dc4..c7abc55 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Example Command -[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml ) +[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml) ``` poetry run cellveyor --spreadsheet-directory \ From 1ebe8b3d1836af9809a6cce2813e9968e1295952 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 13 Nov 2023 09:23:29 -0500 Subject: [PATCH 20/43] Adding python badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c7abc55..bf103d3 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ ## Example Command [![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml) +[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/keven-cellveyor/search?l=python) ``` poetry run cellveyor --spreadsheet-directory \ From 557820f26774ffeaa9cc9c3017be4e7691884afa Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Mon, 13 Nov 2023 09:28:21 -0500 Subject: [PATCH 21/43] Adding maintenance badge --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bf103d3..eedfb30 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ ## Example Command [![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml) -[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/keven-cellveyor/search?l=python) +[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/KevenDuverglas/keven-cellveyor/search?l=python) +[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/KevenDuverglas/keven-cellveyor/graphs/commit-activity) ``` poetry run cellveyor --spreadsheet-directory \ From add962e28498480e95eb396bbe3494238969c803 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 14:14:37 -0500 Subject: [PATCH 22/43] removing Keven in links --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index eedfb30..4de2ea4 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ ## Example Command -[![build](https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/KevenDuverglas/keven-cellveyor/actions/workflows/build.yml) -[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/KevenDuverglas/keven-cellveyor/search?l=python) -[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/KevenDuverglas/keven-cellveyor/graphs/commit-activity) +[![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) +[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) +[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) ``` poetry run cellveyor --spreadsheet-directory \ From 79a9ce0ad37c8ababf11147941d7101e9e05a4e9 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 14:22:52 -0500 Subject: [PATCH 23/43] readme updates --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4de2ea4..cefdac4 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ [![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) ``` -poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file -CMPSC-203-Fall-2023-Gradebook.xlsx \ +poetry run cellveyor +--spreadsheet-directory `directory-to-spreadsheet` +--spreadsheet-file `directory-to-file` --sheet-name Main \ --key-attribute "Student GitHub" \ --key-value "gkapfham" \ From 7c6da895add4bc21eba738ae5c827f197db742fc Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 14:39:24 -0500 Subject: [PATCH 24/43] readme updates --- README.md | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index cefdac4..b3623fc 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,40 @@ # cellveyor -## Example Command - [![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) [![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) [![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) +## Example Command + + +``` +poetry run cellveyor --spreadsheet-directory \ +--spreadsheet-file \ +--sheet-name \ +--key-attribute "" \ +--key-value "" \ +--column-regexp "" \ +--feedback-regexp "" \ +--feedback-file \ +--feedback-file \ +--github-token \ +--github-organization \ +--github-repository-prefix \ +--transfer-report +``` + +### Other Example Command + ``` -poetry run cellveyor ---spreadsheet-directory `directory-to-spreadsheet` ---spreadsheet-file `directory-to-file` +poetry run cellveyor --spreadsheet-directory \ +/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ --sheet-name Main \ --key-attribute "Student GitHub" \ --key-value "gkapfham" \ --column-regexp "^(Summary Grade|Final Grade) .*$" \ --feedback-regexp "Summary Grade 1 - Feedback" \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/ -feedback/all/feedback.yml \ ---feedback-file /home/gkapfham/working/teaching/github- -classroom/feedback/developer --development/feedback-overall-course-assessment.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/all/feedback.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/developer-development/feedback-overall-course-assessment.yml \ --github-token \ --github-organization Allegheny-Computer-Science-203-F2023 \ --github-repository-prefix computer-science-203-fall-2023-course-assessment \ From 68a18c8b18c60b4f5d0d015c8dd527a11f041cd0 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 14:43:32 -0500 Subject: [PATCH 25/43] passing checks --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b3623fc..5c0fe37 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ ## Example Command - ``` poetry run cellveyor --spreadsheet-directory \ --spreadsheet-file \ @@ -27,14 +26,17 @@ poetry run cellveyor --spreadsheet-directory \ ``` poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ +/home/gkapfham/working/data/gradebook/2023 +--spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ --sheet-name Main \ --key-attribute "Student GitHub" \ --key-value "gkapfham" \ --column-regexp "^(Summary Grade|Final Grade) .*$" \ --feedback-regexp "Summary Grade 1 - Feedback" \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/all/feedback.yml \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/developer-development/feedback-overall-course-assessment.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom +/feedback/all/feedback.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom +/feedback/developer-development/feedback-overall-course-assessment.yml \ --github-token \ --github-organization Allegheny-Computer-Science-203-F2023 \ --github-repository-prefix computer-science-203-fall-2023-course-assessment \ From 321488b28a5717203138d764e3b45d3564758ec9 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 14:44:41 -0500 Subject: [PATCH 26/43] passing checks --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c0fe37..6a2ec62 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ poetry run cellveyor --spreadsheet-directory \ --transfer-report ``` -### Other Example Command +### Other Example Command ``` poetry run cellveyor --spreadsheet-directory \ From 57219808189a04e7817690e1b02d09fb51663230 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 14:58:19 -0500 Subject: [PATCH 27/43] deleting pyc files --- cellveyor/__pycache__/__init__.cpython-311.pyc | Bin 174 -> 0 bytes cellveyor/__pycache__/data.cpython-311.pyc | Bin 1710 -> 0 bytes cellveyor/__pycache__/filesystem.cpython-311.pyc | Bin 2496 -> 0 bytes cellveyor/__pycache__/main.cpython-311.pyc | Bin 5151 -> 0 bytes cellveyor/__pycache__/report.cpython-311.pyc | Bin 4141 -> 0 bytes cellveyor/__pycache__/transfer.cpython-311.pyc | Bin 4113 -> 0 bytes tests/__pycache__/__init__.cpython-311.pyc | Bin 170 -> 0 bytes .../test_filesystem.cpython-311-pytest-7.4.2.pyc | Bin 5418 -> 0 bytes 8 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 cellveyor/__pycache__/__init__.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/data.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/filesystem.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/main.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/report.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/transfer.cpython-311.pyc delete mode 100644 tests/__pycache__/__init__.cpython-311.pyc delete mode 100644 tests/__pycache__/test_filesystem.cpython-311-pytest-7.4.2.pyc diff --git a/cellveyor/__pycache__/__init__.cpython-311.pyc b/cellveyor/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 486a5722ccea3391584419ebee8e202852597b24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmZ3^%ge<81WjK(QbF`%5CH>>P{wCAAY(d13PUi1CZpdivR!s diff --git a/cellveyor/__pycache__/data.cpython-311.pyc b/cellveyor/__pycache__/data.cpython-311.pyc deleted file mode 100644 index 258862555c56f3642e4b62330ac0bb9ba0811b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1710 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 HEEE3#&*OE~ diff --git a/cellveyor/__pycache__/main.cpython-311.pyc b/cellveyor/__pycache__/main.cpython-311.pyc deleted file mode 100644 index 6f5e23d68ed462b84496d3bb0e6565eb99af9beb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5151 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 z zl@66NUy%d4_YQ;3t~LYKov{DD&r06D&ABIIFOQX3Q(xO#1n?gU>+W^BTUYSDRol1l z*bnez=!KwZLG3AA+*&2x?r=cy{MQ%v7jDx5i>v zO2lHiMOn#0_C#pRCp6^fmTWwO<1(RdD>+Dk-lodsGp-@MpyV?Ozo0$$=ox6ZA(ORb#%o?~k+$Y=cBWm^~1 zSw;XQXG@uddb{0!m%SUg%ilg#Hq%K9YWJ0`w8bNjx3a*FEViraV+|~ne diff --git a/cellveyor/__pycache__/transfer.cpython-311.pyc b/cellveyor/__pycache__/transfer.cpython-311.pyc deleted file mode 100644 index e30770828cd0d74f78a2edfc9a49fd5f0df437be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4113 zcmb_fUu+Xc8lUy9*Xw_A{3js}N!S1Z%;6-EA`rCc1;>SykV2B)U5$`syqm<0?R96@ zKz!>v>vRuSiHAyeC(zNVQ6CKEaXb z7Py38a3%tRD-jgjiICt)^ax(DSLlM*2XD97yTl3p-!q9_LIC=fE-2c>UeMXXmZwPQ z7D7udp$EqH8Dl{&>>@Tm&Ix@W4-26M6bYA3F5*;PUJ@~%OW{>Px}J|-P06CbW3eD% zMdlTWPw{6n%DLiIUJzv^lTRrbDL?u>SuH|o%ycHLL}-nfDk>`)3nN#GS2dqm$8V&? z0vR4*HRqWWj!D^KF0TbHNK11uDObpfirA2G7qPUAMOoHdi{cHXA@wh2a$-E2Du7E3 zQILq{#at?r&*Ya)VUY%B{`2u4pHtE2)L6;J^WRe-c~0>S&7Vtb9AgQe(t^u|he-)9 zr}CMS@iAIoLr6Ya&L|RIOBS%Wl)0h#8k(Xk;(RJ6YAhC&BF?ADidG?Q@;*5Qa0{vE z4pJ-~)OV0d-9ewwWm=^{V{55EW3x1{9aL#HhQ*X3@+p3)n9Z*79~4vB%u)vS0|H96 zpyeS?+~JEd1c5JL=~_mBQ6Mw=DcHKvh)wgp_0Ie+r{<@V3$s%T=U}q{BMkO~3phX^ z2%wpZC7X*S+rp6~%g782)@mt@Q#M*y(+;JLZ%i6r`0_=~J;432Y7}1iO@Ip0yO3v3m7BTi1*ndl zCCJU_G_sHAF622<<)*({1o+#V0PwVFn4diX6G-zkzD$u;#eDNDG|qZbfTKK@Cf{lm zH#Cf$2*ufQEx!+UQ<$L6f&n#6uZ?zKoT2pF7J`EX%xj_wGisGp*UZuX}4$F zVUPIRC_C)^*etI#XQvk%;NQKbk7c`RKaR?*%C0wMt(gd^Os6-~=*qv!4%JcSR9fX) z^i*~#q4FYiOjfHe-G{Rpp=-9KTiq1K!i)?!}1)=#j?w_6n$Wp78{ z-uX?c8@`C`+yx4~hXl6l{*C+Qw`P5vx{hwp@1g6I6Ex&+132kklb0Ydu?uJ)I*MfG zy3HI(tWfYrG!aK>Pcv<#vf1`rVbauSDS8<=$>8(Rf{4>%UP&#BSAMOeJAYwn{=8;ixHuJyW7e?t zD?`N2%uUDV7B$Cod~s@Kb|K=yF}HEy8J4S?>W z<25c^=fYcDxW?_Sb7Xu=w!6j+*15sQJ}$&QMF5pqJ%n7nIvTNuZ};gO+I#r(q0fe@ z<7aBavHEaKN5jsr0aef7_R!cL-r0`+{2zPj(Mwg&;qMMz-0a?09eLyH-#(^ok*=o* zpz0aXJw4v=R(E7G#BYY8o1tTm9gIKl6anZ4c#uC_@8%zMA9&b(U~3m&4V}L`0zjVe z8M6Tv$s7Q^2|qmRLZN*+a(KZf3pTs^+H4I}L-9{U0P-A;nT?&c*v|C_tD#wV?w&R4 zzaJ;{skhDE%jSN>nSVb((S6_usgILLIU$ZlFb#N2!upgzOZLhZvGJor)SV+C#jUqr z0GcC}W~zZC*^$JJgh&YEg`)0A&p@9xpijDVx<#K2@-*++1-SHq;DaJuwE0Y)Z{ECH zQ5z+9?iAd$=OPYFJk{)rY_=?3p7b9WJde-;rwNZ=%a z5dsGY90Jg2S;0n9G8onf#h1wN%?QwQ?)97`6tm(aj=^wp%;hqmPE!=Mi6*OPavSZc zc0Su^y!z@#w>c;qFx3AIdXYC!aRNPa?g|5yKUDF;cDTAKEcAk*iVu2DPsI*BXBSi~ zatA98o%K;iHp2rtP3n`U&3f*VQE%Hh-41dcb;ABrRCqJcqtj4t!(2PmU~kV}-9cI$ z>L0qDUZ1$V^6`-FBoY^5UAmjJP$!fqKQ;OVh?`5(rh B_#yxR diff --git a/tests/__pycache__/__init__.cpython-311.pyc b/tests/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 70f682d0009922c74012b09e3c9a0dbf1cecec27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmZ3^%ge<81WjK(QbF`%5CH>>P{wCAAY(d13PUi1CZpdPaY?a$e0*kJW=VX! oUP0wA4x8Nkl+v73yCPPgX(0QG`GLd-W=2NF4-7D(h#4pb0Bam47fK6rNqLe`6eC^`sHHr4)Lh3`5xmWdzD3lu;;C zGBRWE^eptZR58N~=~n$dX!8Ibem#u&+h$~8pw+jqr&Tk0+9eo4L!MQP_$}o=03NhJ z$logLeJwo_ucSwB7d`r3qQ^c%zJfBTmF(qZ*K}N!5vOXoraD`}syh#*Wt+~jQY7~!8vQmER&eyV%;_8EYrzIB(^hvgs|yWak(fy160EB1mJnL#!WA+ zB3FEJgcd}-hWyiBmE7Qtpam*}T{Wo#CmZr=peEM>RkW(q6z7f`ZDB#akYNOB%B*B4 z6gey3SHN8G@XH9giB=uPP@UQ3H{%j=27Iz3EnH3Z>xBI{p-(5SEWw*aFT7dQYXQGR zBXmz*0XJF=8et<+3tAFug

P5%Nju5xRx^lKidjBqMrLT2)p9MiiDtZ0p$BN_p18 zC0Go)tLo~KZd-w*~qO#a(TLbocz^wiO80-F0J$*J+`qqnMctjZt!qTN3>8c*NcL?@ z(U?A((1*m%EV8w%>6oOnqHfz7HWzWRQd-opN#fA0U8`EQYn2@mvMYda$bQY4uT*V= zLA5!%a!t3jvR*PtRCDxMlS&}HpD^`6>(4N*V3O9rM@qV@nKu`0z0BtmCJCX72980Z zqKV^F@gAxGpXg+JV}duh$Pd~ZCmg!|RDNxJnxC(f%)C)uGVz?PJL41ivllO4IXgBv zK9#?2fFIrO(taJXQ`jy4{bI!(KN&fSau@juB1h5~BojH>WF% ziv`+#gAfkx5F&)PgL(ZKOdP%4uio7K3e!D!rDuC9y7bl6{O6c%qL{90=7E^*>^MnD z3dki)j{^7*kaj=AM}a~1GB>fxosN=$PI_t(jxziTj-ob{F83ov^}6u^+-!AmjA%la z7$umyIbC5~EYS8Fgm7?&5FxxB%0+I=n2*vY|>CRgY3s~G?hbig^CGS%59+2Ix z+SeA**qieJqc3UsXy0i43m(kAZYD>(OQ!z4cKrKP;Fx_VCSv z+0YAo6oMNZE=j;WwKbd{{`d;r;tbSksJ3QPW7I zl|r(xMg}#Wbmn+s2R6!K^9F|hQAkvdLz-wx6P`5jSPI`d=t-$fS(Z-yGWVOk ziJBWcc&fT+{@lh{6+K{qMDeFnucIjgq c=YGCGC64`ml@&XrUHTXdqteHAx|w1A1q8sEF#rGn From 8e2470ddd788e10dbfc575bbdc76a9483097ef5b Mon Sep 17 00:00:00 2001 From: gyamfi01 Date: Tue, 14 Nov 2023 15:40:48 -0500 Subject: [PATCH 28/43] Fixed Heading for ReadMe --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/README.md b/README.md index 6a2ec62..090a715 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,49 @@ poetry run cellveyor --spreadsheet-directory \ --github-repository-prefix computer-science-203-fall-2023-course-assessment \ --transfer-report ``` + +## πŸŽ‰ Introduction + +- **Cellveyor** is a python program that uses + +## πŸ˜‚ Definitions + + +## πŸ”‹Features + + +## ⚑️ Requirements + + +## πŸ”½ Installation + + +## πŸ‹ Docker + + +## πŸͺ‚ Configuration + + +## ✨ Analysis + + +## 🚧 Integration + + +## πŸŒ„ Results + + +## 🌎 Deployment + + +## 🀯 Interaction + + +## πŸ“ŠLog + + +## πŸ€— Learning + + + + From 4efc97f695a7f31246a9610e0e49b628cf8b0583 Mon Sep 17 00:00:00 2001 From: gyamfi01 Date: Tue, 14 Nov 2023 15:42:31 -0500 Subject: [PATCH 29/43] Fixed Heading for ReadMe --- README.md | 90 +++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 090a715..186106e 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,3 @@ -# cellveyor - -[![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) -[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) -[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) - -## Example Command - -``` -poetry run cellveyor --spreadsheet-directory \ ---spreadsheet-file \ ---sheet-name \ ---key-attribute "" \ ---key-value "" \ ---column-regexp "" \ ---feedback-regexp "" \ ---feedback-file \ ---feedback-file \ ---github-token \ ---github-organization \ ---github-repository-prefix \ ---transfer-report -``` - -### Other Example Command - -``` -poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 ---spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ ---sheet-name Main \ ---key-attribute "Student GitHub" \ ---key-value "gkapfham" \ ---column-regexp "^(Summary Grade|Final Grade) .*$" \ ---feedback-regexp "Summary Grade 1 - Feedback" \ ---feedback-file /home/gkapfham/working/teaching/github-classroom -/feedback/all/feedback.yml \ ---feedback-file /home/gkapfham/working/teaching/github-classroom -/feedback/developer-development/feedback-overall-course-assessment.yml \ ---github-token \ ---github-organization Allegheny-Computer-Science-203-F2023 \ ---github-repository-prefix computer-science-203-fall-2023-course-assessment \ ---transfer-report -``` - ## πŸŽ‰ Introduction - **Cellveyor** is a python program that uses @@ -88,3 +43,48 @@ poetry run cellveyor --spreadsheet-directory \ +# cellveyor + +[![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) +[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) +[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) + +## Example Command + +``` +poetry run cellveyor --spreadsheet-directory \ +--spreadsheet-file \ +--sheet-name \ +--key-attribute "" \ +--key-value "" \ +--column-regexp "" \ +--feedback-regexp "" \ +--feedback-file \ +--feedback-file \ +--github-token \ +--github-organization \ +--github-repository-prefix \ +--transfer-report +``` + +### Other Example Command + +``` +poetry run cellveyor --spreadsheet-directory \ +/home/gkapfham/working/data/gradebook/2023 +--spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ +--sheet-name Main \ +--key-attribute "Student GitHub" \ +--key-value "gkapfham" \ +--column-regexp "^(Summary Grade|Final Grade) .*$" \ +--feedback-regexp "Summary Grade 1 - Feedback" \ +--feedback-file /home/gkapfham/working/teaching/github-classroom +/feedback/all/feedback.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom +/feedback/developer-development/feedback-overall-course-assessment.yml \ +--github-token \ +--github-organization Allegheny-Computer-Science-203-F2023 \ +--github-repository-prefix computer-science-203-fall-2023-course-assessment \ +--transfer-report +``` + From 3a1c1b48bc745a8d41ebe05df415f6089da5aaed Mon Sep 17 00:00:00 2001 From: Naboni Kidane Date: Tue, 14 Nov 2023 15:44:44 -0500 Subject: [PATCH 30/43] added the logo to git folder --- .github/images/cellveyor-logo.svg | 1 + .github/images/cellveyor_logo.png | 0 2 files changed, 1 insertion(+) create mode 100644 .github/images/cellveyor-logo.svg delete mode 100644 .github/images/cellveyor_logo.png diff --git a/.github/images/cellveyor-logo.svg b/.github/images/cellveyor-logo.svg new file mode 100644 index 0000000..28da48e --- /dev/null +++ b/.github/images/cellveyor-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.github/images/cellveyor_logo.png b/.github/images/cellveyor_logo.png deleted file mode 100644 index e69de29..0000000 From d6bc54fe7ebd0e48c6ef4a0adf578389a9c6d72b Mon Sep 17 00:00:00 2001 From: gyamfi01 Date: Tue, 14 Nov 2023 15:45:02 -0500 Subject: [PATCH 31/43] Fixed Heading for ReadMe --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 186106e..8510542 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +# πŸ’« cellveyor + +[![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) +[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) +[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) + ## πŸŽ‰ Introduction - **Cellveyor** is a python program that uses From aba6b20b34528783131471c4111f9124d143c069 Mon Sep 17 00:00:00 2001 From: gyamfi01 Date: Tue, 14 Nov 2023 15:47:04 -0500 Subject: [PATCH 32/43] Fixed Heading for ReadMe 5 --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index 8510542..946e29b 100644 --- a/README.md +++ b/README.md @@ -47,14 +47,6 @@ ## πŸ€— Learning - - -# cellveyor - -[![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) -[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) -[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) - ## Example Command ``` From 25c26b885af572afb530b880e8073a9f339f753e Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 15:56:19 -0500 Subject: [PATCH 33/43] changes --- README.md | 4 ++-- cellveyor/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 174 bytes cellveyor/__pycache__/data.cpython-311.pyc | Bin 0 -> 1710 bytes .../__pycache__/filesystem.cpython-311.pyc | Bin 0 -> 2496 bytes cellveyor/__pycache__/main.cpython-311.pyc | Bin 0 -> 5151 bytes cellveyor/__pycache__/report.cpython-311.pyc | Bin 0 -> 4141 bytes cellveyor/__pycache__/transfer.cpython-311.pyc | Bin 0 -> 4113 bytes .../Cellveyor-Sample-Gradebook-Shared.xlsx | Bin 0 -> 49951 bytes 8 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 cellveyor/__pycache__/__init__.cpython-311.pyc create mode 100644 cellveyor/__pycache__/data.cpython-311.pyc create mode 100644 cellveyor/__pycache__/filesystem.cpython-311.pyc create mode 100644 cellveyor/__pycache__/main.cpython-311.pyc create mode 100644 cellveyor/__pycache__/report.cpython-311.pyc create mode 100644 cellveyor/__pycache__/transfer.cpython-311.pyc create mode 100644 spreadsheets/Cellveyor-Sample-Gradebook-Shared.xlsx diff --git a/README.md b/README.md index 6a2ec62..fa78bb0 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) [![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) -## Example Command +## Command Template ``` poetry run cellveyor --spreadsheet-directory \ @@ -22,7 +22,7 @@ poetry run cellveyor --spreadsheet-directory \ --transfer-report ``` -### Other Example Command +### Example Command ``` poetry run cellveyor --spreadsheet-directory \ diff --git a/cellveyor/__pycache__/__init__.cpython-311.pyc b/cellveyor/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..486a5722ccea3391584419ebee8e202852597b24 GIT binary patch literal 174 zcmZ3^%ge<81WjK(QbF`%5CH>>P{wCAAY(d13PUi1CZpdivR!s literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/data.cpython-311.pyc b/cellveyor/__pycache__/data.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..258862555c56f3642e4b62330ac0bb9ba0811b81 GIT binary patch literal 1710 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 HEEE3#&*OE~ literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/main.cpython-311.pyc b/cellveyor/__pycache__/main.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f5e23d68ed462b84496d3bb0e6565eb99af9beb GIT binary patch literal 5151 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 z zl@66NUy%d4_YQ;3t~LYKov{DD&r06D&ABIIFOQX3Q(xO#1n?gU>+W^BTUYSDRol1l z*bnez=!KwZLG3AA+*&2x?r=cy{MQ%v7jDx5i>v zO2lHiMOn#0_C#pRCp6^fmTWwO<1(RdD>+Dk-lodsGp-@MpyV?Ozo0$$=ox6ZA(ORb#%o?~k+$Y=cBWm^~1 zSw;XQXG@uddb{0!m%SUg%ilg#Hq%K9YWJ0`w8bNjx3a*FEViraV+|~ne literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/transfer.cpython-311.pyc b/cellveyor/__pycache__/transfer.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e30770828cd0d74f78a2edfc9a49fd5f0df437be GIT binary patch literal 4113 zcmb_fUu+Xc8lUy9*Xw_A{3js}N!S1Z%;6-EA`rCc1;>SykV2B)U5$`syqm<0?R96@ zKz!>v>vRuSiHAyeC(zNVQ6CKEaXb z7Py38a3%tRD-jgjiICt)^ax(DSLlM*2XD97yTl3p-!q9_LIC=fE-2c>UeMXXmZwPQ z7D7udp$EqH8Dl{&>>@Tm&Ix@W4-26M6bYA3F5*;PUJ@~%OW{>Px}J|-P06CbW3eD% zMdlTWPw{6n%DLiIUJzv^lTRrbDL?u>SuH|o%ycHLL}-nfDk>`)3nN#GS2dqm$8V&? z0vR4*HRqWWj!D^KF0TbHNK11uDObpfirA2G7qPUAMOoHdi{cHXA@wh2a$-E2Du7E3 zQILq{#at?r&*Ya)VUY%B{`2u4pHtE2)L6;J^WRe-c~0>S&7Vtb9AgQe(t^u|he-)9 zr}CMS@iAIoLr6Ya&L|RIOBS%Wl)0h#8k(Xk;(RJ6YAhC&BF?ADidG?Q@;*5Qa0{vE z4pJ-~)OV0d-9ewwWm=^{V{55EW3x1{9aL#HhQ*X3@+p3)n9Z*79~4vB%u)vS0|H96 zpyeS?+~JEd1c5JL=~_mBQ6Mw=DcHKvh)wgp_0Ie+r{<@V3$s%T=U}q{BMkO~3phX^ z2%wpZC7X*S+rp6~%g782)@mt@Q#M*y(+;JLZ%i6r`0_=~J;432Y7}1iO@Ip0yO3v3m7BTi1*ndl zCCJU_G_sHAF622<<)*({1o+#V0PwVFn4diX6G-zkzD$u;#eDNDG|qZbfTKK@Cf{lm zH#Cf$2*ufQEx!+UQ<$L6f&n#6uZ?zKoT2pF7J`EX%xj_wGisGp*UZuX}4$F zVUPIRC_C)^*etI#XQvk%;NQKbk7c`RKaR?*%C0wMt(gd^Os6-~=*qv!4%JcSR9fX) z^i*~#q4FYiOjfHe-G{Rpp=-9KTiq1K!i)?!}1)=#j?w_6n$Wp78{ z-uX?c8@`C`+yx4~hXl6l{*C+Qw`P5vx{hwp@1g6I6Ex&+132kklb0Ydu?uJ)I*MfG zy3HI(tWfYrG!aK>Pcv<#vf1`rVbauSDS8<=$>8(Rf{4>%UP&#BSAMOeJAYwn{=8;ixHuJyW7e?t zD?`N2%uUDV7B$Cod~s@Kb|K=yF}HEy8J4S?>W z<25c^=fYcDxW?_Sb7Xu=w!6j+*15sQJ}$&QMF5pqJ%n7nIvTNuZ};gO+I#r(q0fe@ z<7aBavHEaKN5jsr0aef7_R!cL-r0`+{2zPj(Mwg&;qMMz-0a?09eLyH-#(^ok*=o* zpz0aXJw4v=R(E7G#BYY8o1tTm9gIKl6anZ4c#uC_@8%zMA9&b(U~3m&4V}L`0zjVe z8M6Tv$s7Q^2|qmRLZN*+a(KZf3pTs^+H4I}L-9{U0P-A;nT?&c*v|C_tD#wV?w&R4 zzaJ;{skhDE%jSN>nSVb((S6_usgILLIU$ZlFb#N2!upgzOZLhZvGJor)SV+C#jUqr z0GcC}W~zZC*^$JJgh&YEg`)0A&p@9xpijDVx<#K2@-*++1-SHq;DaJuwE0Y)Z{ECH zQ5z+9?iAd$=OPYFJk{)rY_=?3p7b9WJde-;rwNZ=%a z5dsGY90Jg2S;0n9G8onf#h1wN%?QwQ?)97`6tm(aj=^wp%;hqmPE!=Mi6*OPavSZc zc0Su^y!z@#w>c;qFx3AIdXYC!aRNPa?g|5yKUDF;cDTAKEcAk*iVu2DPsI*BXBSi~ zatA98o%K;iHp2rtP3n`U&3f*VQE%Hh-41dcb;ABrRCqJcqtj4t!(2PmU~kV}-9cI$ z>L0qDUZ1$V^6`-FBoY^5UAmjJP$!fqKQ;OVh?`5(rh B_#yxR literal 0 HcmV?d00001 diff --git a/spreadsheets/Cellveyor-Sample-Gradebook-Shared.xlsx b/spreadsheets/Cellveyor-Sample-Gradebook-Shared.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0d1bc6fb2eab332202270f2c85efde2e4ba897c0 GIT binary patch literal 49951 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 ea=!t55JiA literal 0 HcmV?d00001 From 822072570733246bb82943095372bc2f558601b4 Mon Sep 17 00:00:00 2001 From: Keven Michel Duverglas <112563981+KevenDuverglas@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:01:08 -0500 Subject: [PATCH 34/43] Update README.md --- README.md | 77 +++---------------------------------------------------- 1 file changed, 4 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index 946e29b..f8cb7cb 100644 --- a/README.md +++ b/README.md @@ -1,88 +1,19 @@ -# πŸ’« cellveyor - -[![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) -[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) -[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) - -## πŸŽ‰ Introduction - -- **Cellveyor** is a python program that uses - -## πŸ˜‚ Definitions - - -## πŸ”‹Features - - -## ⚑️ Requirements - - -## πŸ”½ Installation - - -## πŸ‹ Docker - - -## πŸͺ‚ Configuration - - -## ✨ Analysis - - -## 🚧 Integration - - -## πŸŒ„ Results - - -## 🌎 Deployment - - -## 🀯 Interaction - - -## πŸ“ŠLog - - -## πŸ€— Learning - +# cellveyor ## Example Command ``` poetry run cellveyor --spreadsheet-directory \ ---spreadsheet-file \ ---sheet-name \ ---key-attribute "" \ ---key-value "" \ ---column-regexp "" \ ---feedback-regexp "" \ ---feedback-file \ ---feedback-file \ ---github-token \ ---github-organization \ ---github-repository-prefix \ ---transfer-report -``` - -### Other Example Command - -``` -poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 ---spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ +/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ --sheet-name Main \ --key-attribute "Student GitHub" \ --key-value "gkapfham" \ --column-regexp "^(Summary Grade|Final Grade) .*$" \ --feedback-regexp "Summary Grade 1 - Feedback" \ ---feedback-file /home/gkapfham/working/teaching/github-classroom -/feedback/all/feedback.yml \ ---feedback-file /home/gkapfham/working/teaching/github-classroom -/feedback/developer-development/feedback-overall-course-assessment.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/all/feedback.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/developer-development/feedback-overall-course-assessment.yml \ --github-token \ --github-organization Allegheny-Computer-Science-203-F2023 \ --github-repository-prefix computer-science-203-fall-2023-course-assessment \ --transfer-report ``` - From d30df9e41ae6123760000329f8fbe099d99fa6c0 Mon Sep 17 00:00:00 2001 From: Keven Michel Duverglas <112563981+KevenDuverglas@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:03:24 -0500 Subject: [PATCH 35/43] Update README.md --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f8cb7cb..f443b5a 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,17 @@ ``` poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ +/home/gkapfham/working/data/gradebook/2023 --spreadsheet-file +CMPSC-203-Fall-2023-Gradebook.xlsx \ --sheet-name Main \ --key-attribute "Student GitHub" \ --key-value "gkapfham" \ --column-regexp "^(Summary Grade|Final Grade) .*$" \ --feedback-regexp "Summary Grade 1 - Feedback" \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/all/feedback.yml \ ---feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/developer-development/feedback-overall-course-assessment.yml \ +--feedback-file /home/gkapfham/working/teaching/ +github-classroom/feedback/all/feedback.yml \ +--feedback-file /home/gkapfham/working/teaching/github-classroom/feedback/ +developer-development/feedback-overall-course-assessment.yml \ --github-token \ --github-organization Allegheny-Computer-Science-203-F2023 \ --github-repository-prefix computer-science-203-fall-2023-course-assessment \ From 1286fc23c687debfd5c0d679242071af291296e7 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 16:09:09 -0500 Subject: [PATCH 36/43] chore;fixing commit --- README.md | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/README.md b/README.md index acabe75..f443b5a 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,11 @@ # cellveyor -<<<<<<< HEAD -[![build](https://github.com/gkapfham/cellveyor/actions/workflows/build.yml/badge.svg)](https://https://github.com/gkapfham/cellveyor/actions/workflows/build.yml) -[![Language:Python](https://img.shields.io/badge/Language-Python-blue.svg)](https://github.com/gkapfham/cellveyor/search?l=python) -[![Maintenance](https://img.shields.io/badge/Maintained%3F-Yes-blue.svg)](https://github.com/gkapfham/cellveyor/graphs/commit-activity) - -## Command Template - -``` -poetry run cellveyor --spreadsheet-directory \ ---spreadsheet-file \ ---sheet-name \ ---key-attribute "" \ ---key-value "" \ ---column-regexp "" \ ---feedback-regexp "" \ ---feedback-file \ ---feedback-file \ ---github-token \ ---github-organization \ ---github-repository-prefix \ ---transfer-report -``` - -### Example Command - -``` -poetry run cellveyor --spreadsheet-directory \ -/home/gkapfham/working/data/gradebook/2023 ---spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ -======= ## Example Command ``` poetry run cellveyor --spreadsheet-directory \ /home/gkapfham/working/data/gradebook/2023 --spreadsheet-file CMPSC-203-Fall-2023-Gradebook.xlsx \ ->>>>>>> d30df9e41ae6123760000329f8fbe099d99fa6c0 --sheet-name Main \ --key-attribute "Student GitHub" \ --key-value "gkapfham" \ From af4e58623d19c72fc8cf973d9a25d756f8a2c713 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 16:18:22 -0500 Subject: [PATCH 37/43] chore;changing run command --- .github/workflows/build.yml | 2 +- cellveyor/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 174 bytes cellveyor/__pycache__/data.cpython-311.pyc | Bin 0 -> 1710 bytes cellveyor/__pycache__/filesystem.cpython-311.pyc | Bin 0 -> 2496 bytes cellveyor/__pycache__/main.cpython-311.pyc | Bin 0 -> 5151 bytes cellveyor/__pycache__/report.cpython-311.pyc | Bin 0 -> 4141 bytes cellveyor/__pycache__/transfer.cpython-311.pyc | Bin 0 -> 4113 bytes 7 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 cellveyor/__pycache__/__init__.cpython-311.pyc create mode 100644 cellveyor/__pycache__/data.cpython-311.pyc create mode 100644 cellveyor/__pycache__/filesystem.cpython-311.pyc create mode 100644 cellveyor/__pycache__/main.cpython-311.pyc create mode 100644 cellveyor/__pycache__/report.cpython-311.pyc create mode 100644 cellveyor/__pycache__/transfer.cpython-311.pyc diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e7eef08..5c0b155 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,7 @@ jobs: - name: Run program if: always() run: | - poetry run cellveyor --help + poetry run cellveyor --show-completion # Run the tests - name: Run Tests if: always() diff --git a/cellveyor/__pycache__/__init__.cpython-311.pyc b/cellveyor/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..486a5722ccea3391584419ebee8e202852597b24 GIT binary patch literal 174 zcmZ3^%ge<81WjK(QbF`%5CH>>P{wCAAY(d13PUi1CZpdivR!s literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/data.cpython-311.pyc b/cellveyor/__pycache__/data.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..258862555c56f3642e4b62330ac0bb9ba0811b81 GIT binary patch literal 1710 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 HEEE3#&*OE~ literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/main.cpython-311.pyc b/cellveyor/__pycache__/main.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6f5e23d68ed462b84496d3bb0e6565eb99af9beb GIT binary patch literal 5151 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 z zl@66NUy%d4_YQ;3t~LYKov{DD&r06D&ABIIFOQX3Q(xO#1n?gU>+W^BTUYSDRol1l z*bnez=!KwZLG3AA+*&2x?r=cy{MQ%v7jDx5i>v zO2lHiMOn#0_C#pRCp6^fmTWwO<1(RdD>+Dk-lodsGp-@MpyV?Ozo0$$=ox6ZA(ORb#%o?~k+$Y=cBWm^~1 zSw;XQXG@uddb{0!m%SUg%ilg#Hq%K9YWJ0`w8bNjx3a*FEViraV+|~ne literal 0 HcmV?d00001 diff --git a/cellveyor/__pycache__/transfer.cpython-311.pyc b/cellveyor/__pycache__/transfer.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e30770828cd0d74f78a2edfc9a49fd5f0df437be GIT binary patch literal 4113 zcmb_fUu+Xc8lUy9*Xw_A{3js}N!S1Z%;6-EA`rCc1;>SykV2B)U5$`syqm<0?R96@ zKz!>v>vRuSiHAyeC(zNVQ6CKEaXb z7Py38a3%tRD-jgjiICt)^ax(DSLlM*2XD97yTl3p-!q9_LIC=fE-2c>UeMXXmZwPQ z7D7udp$EqH8Dl{&>>@Tm&Ix@W4-26M6bYA3F5*;PUJ@~%OW{>Px}J|-P06CbW3eD% zMdlTWPw{6n%DLiIUJzv^lTRrbDL?u>SuH|o%ycHLL}-nfDk>`)3nN#GS2dqm$8V&? z0vR4*HRqWWj!D^KF0TbHNK11uDObpfirA2G7qPUAMOoHdi{cHXA@wh2a$-E2Du7E3 zQILq{#at?r&*Ya)VUY%B{`2u4pHtE2)L6;J^WRe-c~0>S&7Vtb9AgQe(t^u|he-)9 zr}CMS@iAIoLr6Ya&L|RIOBS%Wl)0h#8k(Xk;(RJ6YAhC&BF?ADidG?Q@;*5Qa0{vE z4pJ-~)OV0d-9ewwWm=^{V{55EW3x1{9aL#HhQ*X3@+p3)n9Z*79~4vB%u)vS0|H96 zpyeS?+~JEd1c5JL=~_mBQ6Mw=DcHKvh)wgp_0Ie+r{<@V3$s%T=U}q{BMkO~3phX^ z2%wpZC7X*S+rp6~%g782)@mt@Q#M*y(+;JLZ%i6r`0_=~J;432Y7}1iO@Ip0yO3v3m7BTi1*ndl zCCJU_G_sHAF622<<)*({1o+#V0PwVFn4diX6G-zkzD$u;#eDNDG|qZbfTKK@Cf{lm zH#Cf$2*ufQEx!+UQ<$L6f&n#6uZ?zKoT2pF7J`EX%xj_wGisGp*UZuX}4$F zVUPIRC_C)^*etI#XQvk%;NQKbk7c`RKaR?*%C0wMt(gd^Os6-~=*qv!4%JcSR9fX) z^i*~#q4FYiOjfHe-G{Rpp=-9KTiq1K!i)?!}1)=#j?w_6n$Wp78{ z-uX?c8@`C`+yx4~hXl6l{*C+Qw`P5vx{hwp@1g6I6Ex&+132kklb0Ydu?uJ)I*MfG zy3HI(tWfYrG!aK>Pcv<#vf1`rVbauSDS8<=$>8(Rf{4>%UP&#BSAMOeJAYwn{=8;ixHuJyW7e?t zD?`N2%uUDV7B$Cod~s@Kb|K=yF}HEy8J4S?>W z<25c^=fYcDxW?_Sb7Xu=w!6j+*15sQJ}$&QMF5pqJ%n7nIvTNuZ};gO+I#r(q0fe@ z<7aBavHEaKN5jsr0aef7_R!cL-r0`+{2zPj(Mwg&;qMMz-0a?09eLyH-#(^ok*=o* zpz0aXJw4v=R(E7G#BYY8o1tTm9gIKl6anZ4c#uC_@8%zMA9&b(U~3m&4V}L`0zjVe z8M6Tv$s7Q^2|qmRLZN*+a(KZf3pTs^+H4I}L-9{U0P-A;nT?&c*v|C_tD#wV?w&R4 zzaJ;{skhDE%jSN>nSVb((S6_usgILLIU$ZlFb#N2!upgzOZLhZvGJor)SV+C#jUqr z0GcC}W~zZC*^$JJgh&YEg`)0A&p@9xpijDVx<#K2@-*++1-SHq;DaJuwE0Y)Z{ECH zQ5z+9?iAd$=OPYFJk{)rY_=?3p7b9WJde-;rwNZ=%a z5dsGY90Jg2S;0n9G8onf#h1wN%?QwQ?)97`6tm(aj=^wp%;hqmPE!=Mi6*OPavSZc zc0Su^y!z@#w>c;qFx3AIdXYC!aRNPa?g|5yKUDF;cDTAKEcAk*iVu2DPsI*BXBSi~ zatA98o%K;iHp2rtP3n`U&3f*VQE%Hh-41dcb;ABrRCqJcqtj4t!(2PmU~kV}-9cI$ z>L0qDUZ1$V^6`-FBoY^5UAmjJP$!fqKQ;OVh?`5(rh B_#yxR literal 0 HcmV?d00001 From 434520819cf1283bf090b728a05c3f670529bbfd Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Tue, 14 Nov 2023 16:19:44 -0500 Subject: [PATCH 38/43] chore;deleting pyc files --- cellveyor/__pycache__/__init__.cpython-311.pyc | Bin 174 -> 0 bytes cellveyor/__pycache__/data.cpython-311.pyc | Bin 1710 -> 0 bytes cellveyor/__pycache__/filesystem.cpython-311.pyc | Bin 2496 -> 0 bytes cellveyor/__pycache__/main.cpython-311.pyc | Bin 5151 -> 0 bytes cellveyor/__pycache__/report.cpython-311.pyc | Bin 4141 -> 0 bytes cellveyor/__pycache__/transfer.cpython-311.pyc | Bin 4113 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 cellveyor/__pycache__/__init__.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/data.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/filesystem.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/main.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/report.cpython-311.pyc delete mode 100644 cellveyor/__pycache__/transfer.cpython-311.pyc diff --git a/cellveyor/__pycache__/__init__.cpython-311.pyc b/cellveyor/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 486a5722ccea3391584419ebee8e202852597b24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmZ3^%ge<81WjK(QbF`%5CH>>P{wCAAY(d13PUi1CZpdivR!s diff --git a/cellveyor/__pycache__/data.cpython-311.pyc b/cellveyor/__pycache__/data.cpython-311.pyc deleted file mode 100644 index 258862555c56f3642e4b62330ac0bb9ba0811b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1710 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 HEEE3#&*OE~ diff --git a/cellveyor/__pycache__/main.cpython-311.pyc b/cellveyor/__pycache__/main.cpython-311.pyc deleted file mode 100644 index 6f5e23d68ed462b84496d3bb0e6565eb99af9beb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5151 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 z zl@66NUy%d4_YQ;3t~LYKov{DD&r06D&ABIIFOQX3Q(xO#1n?gU>+W^BTUYSDRol1l z*bnez=!KwZLG3AA+*&2x?r=cy{MQ%v7jDx5i>v zO2lHiMOn#0_C#pRCp6^fmTWwO<1(RdD>+Dk-lodsGp-@MpyV?Ozo0$$=ox6ZA(ORb#%o?~k+$Y=cBWm^~1 zSw;XQXG@uddb{0!m%SUg%ilg#Hq%K9YWJ0`w8bNjx3a*FEViraV+|~ne diff --git a/cellveyor/__pycache__/transfer.cpython-311.pyc b/cellveyor/__pycache__/transfer.cpython-311.pyc deleted file mode 100644 index e30770828cd0d74f78a2edfc9a49fd5f0df437be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4113 zcmb_fUu+Xc8lUy9*Xw_A{3js}N!S1Z%;6-EA`rCc1;>SykV2B)U5$`syqm<0?R96@ zKz!>v>vRuSiHAyeC(zNVQ6CKEaXb z7Py38a3%tRD-jgjiICt)^ax(DSLlM*2XD97yTl3p-!q9_LIC=fE-2c>UeMXXmZwPQ z7D7udp$EqH8Dl{&>>@Tm&Ix@W4-26M6bYA3F5*;PUJ@~%OW{>Px}J|-P06CbW3eD% zMdlTWPw{6n%DLiIUJzv^lTRrbDL?u>SuH|o%ycHLL}-nfDk>`)3nN#GS2dqm$8V&? z0vR4*HRqWWj!D^KF0TbHNK11uDObpfirA2G7qPUAMOoHdi{cHXA@wh2a$-E2Du7E3 zQILq{#at?r&*Ya)VUY%B{`2u4pHtE2)L6;J^WRe-c~0>S&7Vtb9AgQe(t^u|he-)9 zr}CMS@iAIoLr6Ya&L|RIOBS%Wl)0h#8k(Xk;(RJ6YAhC&BF?ADidG?Q@;*5Qa0{vE z4pJ-~)OV0d-9ewwWm=^{V{55EW3x1{9aL#HhQ*X3@+p3)n9Z*79~4vB%u)vS0|H96 zpyeS?+~JEd1c5JL=~_mBQ6Mw=DcHKvh)wgp_0Ie+r{<@V3$s%T=U}q{BMkO~3phX^ z2%wpZC7X*S+rp6~%g782)@mt@Q#M*y(+;JLZ%i6r`0_=~J;432Y7}1iO@Ip0yO3v3m7BTi1*ndl zCCJU_G_sHAF622<<)*({1o+#V0PwVFn4diX6G-zkzD$u;#eDNDG|qZbfTKK@Cf{lm zH#Cf$2*ufQEx!+UQ<$L6f&n#6uZ?zKoT2pF7J`EX%xj_wGisGp*UZuX}4$F zVUPIRC_C)^*etI#XQvk%;NQKbk7c`RKaR?*%C0wMt(gd^Os6-~=*qv!4%JcSR9fX) z^i*~#q4FYiOjfHe-G{Rpp=-9KTiq1K!i)?!}1)=#j?w_6n$Wp78{ z-uX?c8@`C`+yx4~hXl6l{*C+Qw`P5vx{hwp@1g6I6Ex&+132kklb0Ydu?uJ)I*MfG zy3HI(tWfYrG!aK>Pcv<#vf1`rVbauSDS8<=$>8(Rf{4>%UP&#BSAMOeJAYwn{=8;ixHuJyW7e?t zD?`N2%uUDV7B$Cod~s@Kb|K=yF}HEy8J4S?>W z<25c^=fYcDxW?_Sb7Xu=w!6j+*15sQJ}$&QMF5pqJ%n7nIvTNuZ};gO+I#r(q0fe@ z<7aBavHEaKN5jsr0aef7_R!cL-r0`+{2zPj(Mwg&;qMMz-0a?09eLyH-#(^ok*=o* zpz0aXJw4v=R(E7G#BYY8o1tTm9gIKl6anZ4c#uC_@8%zMA9&b(U~3m&4V}L`0zjVe z8M6Tv$s7Q^2|qmRLZN*+a(KZf3pTs^+H4I}L-9{U0P-A;nT?&c*v|C_tD#wV?w&R4 zzaJ;{skhDE%jSN>nSVb((S6_usgILLIU$ZlFb#N2!upgzOZLhZvGJor)SV+C#jUqr z0GcC}W~zZC*^$JJgh&YEg`)0A&p@9xpijDVx<#K2@-*++1-SHq;DaJuwE0Y)Z{ECH zQ5z+9?iAd$=OPYFJk{)rY_=?3p7b9WJde-;rwNZ=%a z5dsGY90Jg2S;0n9G8onf#h1wN%?QwQ?)97`6tm(aj=^wp%;hqmPE!=Mi6*OPavSZc zc0Su^y!z@#w>c;qFx3AIdXYC!aRNPa?g|5yKUDF;cDTAKEcAk*iVu2DPsI*BXBSi~ zatA98o%K;iHp2rtP3n`U&3f*VQE%Hh-41dcb;ABrRCqJcqtj4t!(2PmU~kV}-9cI$ z>L0qDUZ1$V^6`-FBoY^5UAmjJP$!fqKQ;OVh?`5(rh B_#yxR From cbe9494b769e17e1bdc1d3f80b4b909610de1b80 Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Fri, 17 Nov 2023 09:33:11 -0500 Subject: [PATCH 39/43] changing command --- .github/workflows/build.yml | 2 +- ...-Gradebook-Shared.xlsx => fake_spreadsheet.xlsx} | Bin spreadsheets/feedback.yml | 4 ++++ 3 files changed, 5 insertions(+), 1 deletion(-) rename spreadsheets/{Cellveyor-Sample-Gradebook-Shared.xlsx => fake_spreadsheet.xlsx} (100%) create mode 100644 spreadsheets/feedback.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c0b155..52eb2fc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,7 @@ jobs: - name: Run program if: always() run: | - poetry run cellveyor --show-completion + poetry run cellveyor --spreadsheet-directory $PWD/spreadsheets/ --spreadsheet-file $PWD/spreadsheets/fake_spreadsheet.xlsx/ --sheet-name Main --key-attribute "Student GitHub" --key-value "gkapfham" --column-regexp '^(Summary Grade|Final Grade) .*$' --feedback-regexp "Summary Grade 1 - Feedback" --feedback-file $PWD/spreadsheets/feedback.yml/ # Run the tests - name: Run Tests if: always() diff --git a/spreadsheets/Cellveyor-Sample-Gradebook-Shared.xlsx b/spreadsheets/fake_spreadsheet.xlsx similarity index 100% rename from spreadsheets/Cellveyor-Sample-Gradebook-Shared.xlsx rename to spreadsheets/fake_spreadsheet.xlsx diff --git a/spreadsheets/feedback.yml b/spreadsheets/feedback.yml new file mode 100644 index 0000000..630c842 --- /dev/null +++ b/spreadsheets/feedback.yml @@ -0,0 +1,4 @@ +footer: + - type: markdown + attributes: + value: "This is a footer" From d3104ba37d01f535e65be8d851a855ded9d63edb Mon Sep 17 00:00:00 2001 From: KevenDuverglas Date: Fri, 17 Nov 2023 09:43:15 -0500 Subject: [PATCH 40/43] fixing data.py --- CODE_OF_CONDUCT.md | 7 ++++--- cellveyor/data.py | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b7fb642..cb203cf 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -116,7 +116,7 @@ the community. This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. +[www.contributor-covenant.org](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html). Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). @@ -124,5 +124,6 @@ enforcement ladder](https://github.com/mozilla/diversity). [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. +[www.contributor-covenant.org](https://www.contributor-covenant.org/faq). +Translations are available at +[www.contributor-covenant.org](https://www.contributor-covenant.org/translations). diff --git a/cellveyor/data.py b/cellveyor/data.py index 7448243..12090cf 100644 --- a/cellveyor/data.py +++ b/cellveyor/data.py @@ -43,4 +43,3 @@ def key_attribute_column_filter( # for both of the two previous steps, make sure to drop any rows that contain NA values # return the columns that were selected and then the resulting dataframe return (selected_columns, result_df) # type: ignore - From b96511d5b45ce978a3bbecb698ae764fa88a13a9 Mon Sep 17 00:00:00 2001 From: Haylee Pierce Date: Mon, 20 Nov 2023 10:07:21 -0500 Subject: [PATCH 41/43] feat: Create templates for issues & PRs --- ,github/issue_templates/bug_report.md | 22 ++++++++++++++++++++++ ,github/issue_templates/feature_request.md | 11 +++++++++++ ,github/pull_request_template.md | 21 +++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 ,github/issue_templates/bug_report.md create mode 100644 ,github/issue_templates/feature_request.md create mode 100644 ,github/pull_request_template.md diff --git a/,github/issue_templates/bug_report.md b/,github/issue_templates/bug_report.md new file mode 100644 index 0000000..a7c8063 --- /dev/null +++ b/,github/issue_templates/bug_report.md @@ -0,0 +1,22 @@ +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Operating System** +What operating system were you using when you encountered the bug? + +**Additional context** +Add any other context about the problem here. diff --git a/,github/issue_templates/feature_request.md b/,github/issue_templates/feature_request.md new file mode 100644 index 0000000..6e74a07 --- /dev/null +++ b/,github/issue_templates/feature_request.md @@ -0,0 +1,11 @@ +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/,github/pull_request_template.md b/,github/pull_request_template.md new file mode 100644 index 0000000..4e938ae --- /dev/null +++ b/,github/pull_request_template.md @@ -0,0 +1,21 @@ +When creating a pull request to add a new feature or alter an existing one, +there are some important elements to include to help our team review and process it more efficiently. + +1. Make sure the title is descriptive of what the PR includes. Don't mention issue names/numbers; save that for the description. + +2. List the names of those who contributed to the project. + +3. Link the issue the pull request is meant to fix/resolve. + +4. Describe the contents and goal of the pull request. + +5. Will coverge be maintained/increased? + +6. What operating systems has this been tested on? How were these tests conducted? + +7. Include a code block and/or screenshots displaying the functionality of your feature, if applicable/possible. + +Mark as a draft until it is ready to begin the reviewing process, then tag our Lead Software Architect, +[Jeff Normile](https://github.com/jnormile), our Founding Engineer, [Gregory Kapfhammer](https://github.com/gkapfham), +and our Project Managers, [Haylee Pierce](https://github.com/hayleepierce) and [Sabrina Rodriguez](https://github.com/rodriguez03) +when you mark it as ready for review. From bda9469b0c8187b6dd79c985ebc01b62a74cfad6 Mon Sep 17 00:00:00 2001 From: Haylee Pierce Date: Mon, 20 Nov 2023 10:09:01 -0500 Subject: [PATCH 42/43] fix: Change comma to period --- {,github => .github}/issue_templates/bug_report.md | 0 {,github => .github}/issue_templates/feature_request.md | 0 {,github => .github}/pull_request_template.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {,github => .github}/issue_templates/bug_report.md (100%) rename {,github => .github}/issue_templates/feature_request.md (100%) rename {,github => .github}/pull_request_template.md (100%) diff --git a/,github/issue_templates/bug_report.md b/.github/issue_templates/bug_report.md similarity index 100% rename from ,github/issue_templates/bug_report.md rename to .github/issue_templates/bug_report.md diff --git a/,github/issue_templates/feature_request.md b/.github/issue_templates/feature_request.md similarity index 100% rename from ,github/issue_templates/feature_request.md rename to .github/issue_templates/feature_request.md diff --git a/,github/pull_request_template.md b/.github/pull_request_template.md similarity index 100% rename from ,github/pull_request_template.md rename to .github/pull_request_template.md From 6ba1f6b21fc8f4f8985c8f99ad2b9a9b2d235860 Mon Sep 17 00:00:00 2001 From: Haylee Pierce Date: Mon, 20 Nov 2023 10:28:02 -0500 Subject: [PATCH 43/43] fix: Add information about labels --- .github/pull_request_template.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 4e938ae..9b5d689 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -7,13 +7,15 @@ there are some important elements to include to help our team review and process 3. Link the issue the pull request is meant to fix/resolve. -4. Describe the contents and goal of the pull request. +4. Add all labels that apply. (e.g. documentation, ready-for-review) -5. Will coverge be maintained/increased? +5. Describe the contents and goal of the pull request. -6. What operating systems has this been tested on? How were these tests conducted? +6. Will coverge be maintained/increased? -7. Include a code block and/or screenshots displaying the functionality of your feature, if applicable/possible. +7. What operating systems has this been tested on? How were these tests conducted? + +8. Include a code block and/or screenshots displaying the functionality of your feature, if applicable/possible. Mark as a draft until it is ready to begin the reviewing process, then tag our Lead Software Architect, [Jeff Normile](https://github.com/jnormile), our Founding Engineer, [Gregory Kapfhammer](https://github.com/gkapfham),