{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":57419,"defaultBranch":"master","name":"webpy","ownerLogin":"webpy","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2008-09-29T03:42:56.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/26682?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1705472996.0","currentOid":""},"activityList":{"items":[{"before":"d3649322b85777b291ac2b7b3699fb6fc839e382","after":"952d1fda12ac7ecdc47f2242c467f5e2734238d6","ref":"refs/heads/master","pushedAt":"2024-04-30T12:34:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Propagate field notes (#790)\n\n* add test for form validators\r\n\r\n* propagate field level validator notes to form level, as suggested in https://github.com/webpy/webpy/issues/739\r\n\r\n* Format with black and revert changes to make sure test fail\r\n\r\n* Uncomment the changes to make sure test pass\r\n\r\n---------\r\n\r\nCo-authored-by: Christian Clauss ","shortMessageHtmlLink":"Propagate field notes (#790)"}},{"before":"5709b1fed92af9dd871c2bea4c48b5949e7183ba","after":"d3649322b85777b291ac2b7b3699fb6fc839e382","ref":"refs/heads/master","pushedAt":"2024-02-21T05:06:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Fix: enable Python 3.12 to parse templates (#785)\n\n* Fix: enable Python 3.12 to parse templates\r\n\r\nCloses #784.\r\n\r\nThis PR fixes the inability of `web.py` to run on Python 3.12, and it\r\ndoes so by matching any unmatched `\"` in a string.\r\n\r\nIn Python 3.12, changes to `tokenize.generate_tokens()` requires all\r\nquotes to be matched, and the `web.py` template parser hands\r\nunterminated strings to `tokenize.generate_tokens()` quite frequently.\r\n\r\nThis PR makes a tacit assumption that we should avoid rewriting the\r\ntemplate parser if possible while also allowing `web.py` to run on\r\nPython 3.12.\r\n\r\nTo that end, it handles every `TokenError` that is because of unmatched\r\nstring literals by adding a `\"` to the line. Although this appears to\r\nwork, I am aware that appending a `\"` to each line that has an unmatched\r\n`\"` is less than ideal. However, it seemed a very easy way to avoid\r\nrewriting the template parser. I am absolutely open to other approaches.\r\n\r\n*IF* this approach looks as if it has legs, I can can look more into\r\nwhere that \"extra\" `\"` goes, why it seems not to matter, and write some\r\nunit tests.\r\n\r\nWith regard to testing, I tested this with as many pages on Open Library\r\nthat I could (via the local development environment), and it seems to\r\nwork.\r\n\r\n* noqa: complexity and excess statements for read_expr()\r\n\r\n* Add suggestions from @tfmorris.\r\n\r\n* Switch to more-itertools.peekable\r\n\r\n and set linter limits back down again\r\n\r\n* Fix off-by-1 error and add test coverage\r\n\r\n* Linting fixes\r\n\r\n* Add `more_itertools` as a dependency\r\n\r\n`more_itertools.peekable()` is used now.\r\n\r\n`cheroot` already requires `more_itertools`, so this depedency is\r\nalready installed anyway, but adding it as a dependency for `webpy`\r\nitself will ensure that if `cheroot` drops the `more_itertools`,\r\ndependency, `webpy` will still require it.\r\n\r\n---------\r\n\r\nCo-authored-by: Tom Morris ","shortMessageHtmlLink":"Fix: enable Python 3.12 to parse templates (#785)"}},{"before":"79889f11423a16ac470814834e40a27feb7a305d","after":null,"ref":"refs/heads/dependabot/github_actions/actions/setup-python-5","pushedAt":"2024-01-17T06:29:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"}},{"before":"9913d80e1d924a979177b2a602fff181e033ab78","after":"5709b1fed92af9dd871c2bea4c48b5949e7183ba","ref":"refs/heads/master","pushedAt":"2024-01-17T06:29:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Bump actions/setup-python from 4 to 5 (#788)\n\nBumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.\r\n- [Release notes](https://github.com/actions/setup-python/releases)\r\n- [Commits](https://github.com/actions/setup-python/compare/v4...v5)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: actions/setup-python\r\n dependency-type: direct:production\r\n update-type: version-update:semver-major\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump actions/setup-python from 4 to 5 (#788)"}},{"before":null,"after":"79889f11423a16ac470814834e40a27feb7a305d","ref":"refs/heads/dependabot/github_actions/actions/setup-python-5","pushedAt":"2024-01-17T06:12:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump actions/setup-python from 4 to 5\n\nBumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump actions/setup-python from 4 to 5"}},{"before":"f85582bb9a9b2ea5b06166f38daf990780914072","after":null,"ref":"refs/heads/Keep-GitHub-Actions-up-to-date-with-Dependabot","pushedAt":"2024-01-17T06:12:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"}},{"before":"cab78cfe331f88031fc123a8bded7b3c80093e56","after":"9913d80e1d924a979177b2a602fff181e033ab78","ref":"refs/heads/master","pushedAt":"2024-01-17T06:12:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Keep GitHub Actions up to date with Dependabot (#787)\n\nhttps://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot","shortMessageHtmlLink":"Keep GitHub Actions up to date with Dependabot (#787)"}},{"before":null,"after":"f85582bb9a9b2ea5b06166f38daf990780914072","ref":"refs/heads/Keep-GitHub-Actions-up-to-date-with-Dependabot","pushedAt":"2024-01-15T16:34:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Keep GitHub Actions up to date with Dependabot\n\nhttps://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot","shortMessageHtmlLink":"Keep GitHub Actions up to date with Dependabot"}},{"before":"ed3e92cceb6ed870b224107ea653f48fa7fc2d0a","after":"cab78cfe331f88031fc123a8bded7b3c80093e56","ref":"refs/heads/master","pushedAt":"2024-01-12T14:34:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Fix: update deprecated sqlite3 datetime and timestamp adapters (#786)\n\nThis PR updates the datetime and timestamp adapters for `sqlite3` in\r\nPython 3.12. For more, see:\r\nhttps://docs.python.org/3/library/sqlite3.html#default-adapters-and-converters-deprecated","shortMessageHtmlLink":"Fix: update deprecated sqlite3 datetime and timestamp adapters (#786)"}},{"before":"0f1facb4c44f4059f2216d2631a8827b123c2536","after":"40d919edb5d673044c97264483314a2830359c7c","ref":"refs/heads/Add-nginx-unit-as-a-production-platform","pushedAt":"2023-12-20T05:07:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"str.split() is difficult to understand","shortMessageHtmlLink":"str.split() is difficult to understand"}},{"before":null,"after":"0f1facb4c44f4059f2216d2631a8827b123c2536","ref":"refs/heads/Add-nginx-unit-as-a-production-platform","pushedAt":"2023-12-19T07:13:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"wsgi.py: Add nginx unit as a production platform\n\nFixes: #781\r\n* #781","shortMessageHtmlLink":"wsgi.py: Add nginx unit as a production platform"}},{"before":"a1d2ee4b100985606b69ad6602a46dca4d5c66c1","after":"ed3e92cceb6ed870b224107ea653f48fa7fc2d0a","ref":"refs/heads/master","pushedAt":"2023-11-18T05:21:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Fix storify and multipart (#778)\n\n* remove comments\r\n\r\n* Make rawinput() variable names more descriptive\r\n\r\n* Update utils.py to work with multipart\r\n\r\n* Remove unused code paths","shortMessageHtmlLink":"Fix storify and multipart (#778)"}},{"before":"e28fe0d11e79544c0db626241000dbc746cf7fe8","after":"a1d2ee4b100985606b69ad6602a46dca4d5c66c1","ref":"refs/heads/master","pushedAt":"2023-10-10T14:43:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"web.py release v0.70 (#775)\n\n* web.py release v0.70\r\n\r\n* Ruff: set upper limits on code complexity\r\n\r\n* pre-commit autoupdate\r\n\r\n* pre-commit autoupdate","shortMessageHtmlLink":"web.py release v0.70 (#775)"}},{"before":"6a699cf520c8b72ebc87274413a94e606dfa28fe","after":null,"ref":"refs/heads/Upgrade-GitHub-Actions","pushedAt":"2023-10-02T06:24:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"}},{"before":"f7540bef650bce7227af796728136d41e44cdd0e","after":"e28fe0d11e79544c0db626241000dbc746cf7fe8","ref":"refs/heads/master","pushedAt":"2023-10-02T06:24:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Upgrade GitHub Actions (#774)\n\n* Upgrade GitHub Actions\r\n\r\n* Update README.md","shortMessageHtmlLink":"Upgrade GitHub Actions (#774)"}},{"before":"0be0ad4314ccc98479f8c0fa66f8fa37a6d58ba2","after":"6a699cf520c8b72ebc87274413a94e606dfa28fe","ref":"refs/heads/Upgrade-GitHub-Actions","pushedAt":"2023-10-01T14:09:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"4d6ffb178db92f73f78a67a3ef036c70883c49b8","after":"0be0ad4314ccc98479f8c0fa66f8fa37a6d58ba2","ref":"refs/heads/Upgrade-GitHub-Actions","pushedAt":"2023-10-01T13:41:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Upgrade GitHub Actions","shortMessageHtmlLink":"Upgrade GitHub Actions"}},{"before":"3e24931c137f9acb0139ad98cf0732b5c920a27f","after":"4d6ffb178db92f73f78a67a3ef036c70883c49b8","ref":"refs/heads/Upgrade-GitHub-Actions","pushedAt":"2023-10-01T07:49:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"_PY_MAX_VERSION: int = 12","shortMessageHtmlLink":"_PY_MAX_VERSION: int = 12"}},{"before":null,"after":"3e24931c137f9acb0139ad98cf0732b5c920a27f","ref":"refs/heads/Upgrade-GitHub-Actions","pushedAt":"2023-09-27T21:17:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Upgrade GitHub Actions","shortMessageHtmlLink":"Upgrade GitHub Actions"}},{"before":"1377c9fefd5ddc31937ca31ca33ec1bf494597d0","after":"f7540bef650bce7227af796728136d41e44cdd0e","ref":"refs/heads/master","pushedAt":"2023-09-27T21:13:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"Remove cgi.FieldStorage (based on #769) (#773)","shortMessageHtmlLink":"Remove cgi.FieldStorage (based on #769) (#773)"}},{"before":"91e6a0e09ab154d3654b6d5c3cac705716bc6c68","after":"1377c9fefd5ddc31937ca31ca33ec1bf494597d0","ref":"refs/heads/master","pushedAt":"2023-08-04T15:46:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"ruff --select=UP032 --fix . (#772)","shortMessageHtmlLink":"ruff --select=UP032 --fix . (#772)"}},{"before":"0b67153411870604197349159a167a3a1133f705","after":"91e6a0e09ab154d3654b6d5c3cac705716bc6c68","ref":"refs/heads/master","pushedAt":"2023-04-20T11:04:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cclauss","name":"Christian Clauss","path":"/cclauss","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3709715?s=80&v=4"},"commit":{"message":"pre-commit autoupdate 2023-04-20 (#765)\n\n* pre-commit autoupdate 2023-04-20\r\n\r\n* pre-commit autoupdate 2023-04-20","shortMessageHtmlLink":"pre-commit autoupdate 2023-04-20 (#765)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEPfzcKgA","startCursor":null,"endCursor":null}},"title":"Activity ยท webpy/webpy"}