pax_global_header 0000666 0000000 0000000 00000000064 15121753516 0014520 g ustar 00root root 0000000 0000000 52 comment=530c19236d42b3353d3125af562e70aa73762e76
python-polyfactory-3.2.0/ 0000775 0000000 0000000 00000000000 15121753516 0015414 5 ustar 00root root 0000000 0000000 python-polyfactory-3.2.0/.all-contributorsrc 0000664 0000000 0000000 00000032532 15121753516 0021252 0 ustar 00root root 0000000 0000000 {
"files": [
"README.md"
],
"imageSize": 100,
"commit": false,
"commitConvention": "angular",
"contributors": [
{
"login": "Goldziher",
"name": "Na'aman Hirschfeld",
"avatar_url": "https://avatars.githubusercontent.com/u/30733348?v=4",
"profile": "https://github.com/Goldziher",
"contributions": [
"maintenance",
"infra",
"test",
"code",
"doc"
]
},
{
"login": "JacobCoffee",
"name": "Jacob Coffee",
"avatar_url": "https://avatars.githubusercontent.com/u/45884264?v=4",
"profile": "https://scriptr.dev/",
"contributions": [
"maintenance",
"doc",
"test"
]
},
{
"login": "provinzkraut",
"name": "Janek Nouvertné",
"avatar_url": "https://avatars.githubusercontent.com/u/25355197?v=4",
"profile": "https://github.com/provinzkraut",
"contributions": [
"maintenance",
"doc",
"test",
"code"
]
},
{
"login": "peterschutt",
"name": "Peter Schutt",
"avatar_url": "https://avatars.githubusercontent.com/u/20659309?v=4",
"profile": "https://schutt.io",
"contributions": [
"maintenance",
"test",
"code",
"doc"
]
},
{
"login": "mdczaplicki",
"name": "Marek Czaplicki",
"avatar_url": "https://avatars.githubusercontent.com/u/9108586?v=4",
"profile": "https://czaplicki.it/",
"contributions": [
"code",
"test"
]
},
{
"login": "przybylop",
"name": "Piotr Przybyło",
"avatar_url": "https://avatars.githubusercontent.com/u/82805821?v=4",
"profile": "https://github.com/przybylop",
"contributions": [
"code"
]
},
{
"login": "sygutss",
"name": "sygutss",
"avatar_url": "https://avatars.githubusercontent.com/u/48909366?v=4",
"profile": "https://github.com/sygutss",
"contributions": [
"bug",
"code"
]
},
{
"login": "chrisbeardy",
"name": "chrisbeardy",
"avatar_url": "https://avatars.githubusercontent.com/u/20585410?v=4",
"profile": "https://github.com/chrisbeardy",
"contributions": [
"doc"
]
},
{
"login": "guacs",
"name": "guacs",
"avatar_url": "https://avatars.githubusercontent.com/u/126393040?v=4",
"profile": "https://github.com/guacs",
"contributions": [
"code",
"infra",
"doc",
"test",
"maintenance"
]
},
{
"login": "VSHUMILIN97",
"name": "Vadim",
"avatar_url": "https://avatars.githubusercontent.com/u/27234763?v=4",
"profile": "https://github.com/VSHUMILIN97",
"contributions": [
"code"
]
},
{
"login": "Simske",
"name": "Simske",
"avatar_url": "https://avatars.githubusercontent.com/u/2445660?v=4",
"profile": "https://github.com/Simske",
"contributions": [
"code"
]
},
{
"login": "sondrelg",
"name": "Sondre Lillebø Gundersen",
"avatar_url": "https://avatars.githubusercontent.com/u/25310870?v=4",
"profile": "https://github.com/sondrelg",
"contributions": [
"code"
]
},
{
"login": "mciszczon",
"name": "Mateusz Ciszczoń",
"avatar_url": "https://avatars.githubusercontent.com/u/1078369?v=4",
"profile": "https://mciszczon.pl/",
"contributions": [
"code"
]
},
{
"login": "phbernardes",
"name": "Pedro Bernardes",
"avatar_url": "https://avatars.githubusercontent.com/u/18899993?v=4",
"profile": "https://www.linkedin.com/in/pedro-bernardes/",
"contributions": [
"code"
]
},
{
"login": "lindycoder",
"name": "Martin Roy",
"avatar_url": "https://avatars.githubusercontent.com/u/12926519?v=4",
"profile": "https://github.com/lindycoder",
"contributions": [
"code"
]
},
{
"login": "Butch78",
"name": "Matthew Aylward ",
"avatar_url": "https://avatars.githubusercontent.com/u/19205392?v=4",
"profile": "http://matthewtyleraylward.com",
"contributions": [
"code"
]
},
{
"login": "EltonChou",
"name": "Elton H.Y. Chou",
"avatar_url": "https://avatars.githubusercontent.com/u/12560310?v=4",
"profile": "https://github.com/EltonChou",
"contributions": [
"code"
]
},
{
"login": "nguyent",
"name": "Thang",
"avatar_url": "https://avatars.githubusercontent.com/u/576848?v=4",
"profile": "https://github.com/nguyent",
"contributions": [
"code"
]
},
{
"login": "DaanRademaker",
"name": "Daan",
"avatar_url": "https://avatars.githubusercontent.com/u/29598493?v=4",
"profile": "https://github.com/DaanRademaker",
"contributions": [
"code"
]
},
{
"login": "lyz-code",
"name": "Lyz",
"avatar_url": "https://avatars.githubusercontent.com/u/24810987?v=4",
"profile": "https://lyz-code.github.io/blue-book/",
"contributions": [
"code"
]
},
{
"login": "thorin-schiffer",
"name": "Thorin Schiffer",
"avatar_url": "https://avatars.githubusercontent.com/u/3502492?v=4",
"profile": "https://portfolio.schiffer.pro/",
"contributions": [
"code"
]
},
{
"login": "Iipin",
"name": "Iipin",
"avatar_url": "https://avatars.githubusercontent.com/u/52832022?v=4",
"profile": "https://github.com/Iipin",
"contributions": [
"code"
]
},
{
"login": "avihai-yosef",
"name": "avihai-yosef",
"avatar_url": "https://avatars.githubusercontent.com/u/79567307?v=4",
"profile": "https://github.com/avihai-yosef",
"contributions": [
"code"
]
},
{
"login": "anthonyh209",
"name": "anthonyh209",
"avatar_url": "https://avatars.githubusercontent.com/u/33107540?v=4",
"profile": "https://github.com/anthonyh209",
"contributions": [
"code"
]
},
{
"login": "ReznikovRoman",
"name": "Roman Reznikov",
"avatar_url": "https://avatars.githubusercontent.com/u/44291988?v=4",
"profile": "http://linkedin.com/in/roman-reznikov",
"contributions": [
"code"
]
},
{
"login": "gigelu",
"name": "gigelu",
"avatar_url": "https://avatars.githubusercontent.com/u/270697?v=4",
"profile": "https://github.com/gigelu",
"contributions": [
"code"
]
},
{
"login": "roeeyn",
"name": "Rodrigo Medina",
"avatar_url": "https://avatars.githubusercontent.com/u/13385000?v=4",
"profile": "https://github.com/roeeyn",
"contributions": [
"code"
]
},
{
"login": "gegnew",
"name": "Gerrit Egnew",
"avatar_url": "https://avatars.githubusercontent.com/u/35822787?v=4",
"profile": "https://gerritegnew.info/",
"contributions": [
"code"
]
},
{
"login": "danielkatzan",
"name": "danielkatzan",
"avatar_url": "https://avatars.githubusercontent.com/u/9249066?v=4",
"profile": "https://github.com/danielkatzan",
"contributions": [
"doc"
]
},
{
"login": "abdulhaq-e",
"name": "Abdulhaq Emhemmed",
"avatar_url": "https://avatars.githubusercontent.com/u/2532125?v=4",
"profile": "https://github.com/abdulhaq-e",
"contributions": [
"code"
]
},
{
"login": "klimantje",
"name": "klimantje",
"avatar_url": "https://avatars.githubusercontent.com/u/20017047?v=4",
"profile": "https://github.com/klimantje",
"contributions": [
"code"
]
},
{
"login": "tcrasset",
"name": "Tom Crasset",
"avatar_url": "https://avatars.githubusercontent.com/u/25140344?v=4",
"profile": "https://github.com/tcrasset",
"contributions": [
"code"
]
},
{
"login": "185504a9",
"name": "cătălin",
"avatar_url": "https://avatars.githubusercontent.com/u/45485069?v=4",
"profile": "https://git.roboces.dev/catalin",
"contributions": [
"code"
]
},
{
"login": "adhtruong",
"name": "Andrew Truong",
"avatar_url": "https://avatars.githubusercontent.com/u/40660973?v=4",
"profile": "https://github.com/adhtruong",
"contributions": [
"code",
"doc"
]
},
{
"login": "anthonyjgraff",
"name": "Anthony",
"avatar_url": "https://avatars.githubusercontent.com/u/59455370?v=4",
"profile": "https://github.com/anthonyjgraff",
"contributions": [
"code",
"doc",
"test"
]
},
{
"login": "johnraz",
"name": "Jonathan Liuti",
"avatar_url": "https://avatars.githubusercontent.com/u/304164?v=4",
"profile": "https://github.com/johnraz",
"contributions": [
"code",
"doc",
"test"
]
},
{
"login": "julioolvr",
"name": "Julio Olivera",
"avatar_url": "https://avatars.githubusercontent.com/u/1302493?v=4",
"profile": "https://julio.li/",
"contributions": [
"code",
"test"
]
},
{
"login": "g0di",
"name": "Benoît Godard",
"avatar_url": "https://avatars.githubusercontent.com/u/2545380?v=4",
"profile": "https://github.com/g0di",
"contributions": [
"code",
"doc",
"test"
]
},
{
"login": "hsorsky",
"name": "Henry Sorsky",
"avatar_url": "https://avatars.githubusercontent.com/u/36887638?v=4",
"profile": "https://github.com/hsorsky",
"contributions": [
"infra"
]
},
{
"login": "wer153",
"name": "Kim Minki",
"avatar_url": "https://avatars.githubusercontent.com/u/23370765?v=4",
"profile": "https://github.com/wer153",
"contributions": [
"doc"
]
},
{
"login": "TimDumol",
"name": "Tim Joseph Dumol",
"avatar_url": "https://avatars.githubusercontent.com/u/49169?v=4",
"profile": "https://www.timdumol.com/",
"contributions": [
"doc"
]
},
{
"login": "wangxin688",
"name": "jeffry",
"avatar_url": "https://avatars.githubusercontent.com/u/36665036?v=4",
"profile": "https://github.com/wangxin688",
"contributions": [
"code"
]
},
{
"login": "Reskov",
"name": "Sergey Kovalev",
"avatar_url": "https://avatars.githubusercontent.com/u/4832451?v=4",
"profile": "https://github.com/Reskov",
"contributions": [
"code"
]
},
{
"login": "Vegemash",
"name": "Isaac Jackson",
"avatar_url": "https://avatars.githubusercontent.com/u/2470379?v=4",
"profile": "https://github.com/Vegemash",
"contributions": [
"code"
]
},
{
"login": "nisemenov",
"name": "Nikita Semenov",
"avatar_url": "https://avatars.githubusercontent.com/u/117774141?v=4",
"profile": "https://github.com/nisemenov",
"contributions": [
"code",
"doc"
]
},
{
"login": "iloveitaly",
"name": "Michael Bianco",
"avatar_url": "https://avatars.githubusercontent.com/u/150855?v=4",
"profile": "https://mikebian.co/",
"contributions": [
"code",
"doc"
]
},
{
"login": "marcuslimdw",
"name": "Marcus",
"avatar_url": "https://avatars.githubusercontent.com/u/42759889?v=4",
"profile": "https://github.com/marcuslimdw",
"contributions": [
"code"
]
},
{
"login": "Rub1kCube",
"name": "Rub1kCube",
"avatar_url": "https://avatars.githubusercontent.com/u/90901892?v=4",
"profile": "https://github.com/Rub1kCube",
"contributions": [
"test"
]
},
{
"login": "RasmusNygren",
"name": "RasmusNygren",
"avatar_url": "https://avatars.githubusercontent.com/u/26030663?v=4",
"profile": "https://github.com/RasmusNygren",
"contributions": [
"doc"
]
},
{
"login": "arembridge",
"name": "rembridge",
"avatar_url": "https://avatars.githubusercontent.com/u/35376887?v=4",
"profile": "https://github.com/arembridge",
"contributions": [
"code"
]
},
{
"login": "bullfest",
"name": "Alexander Viklund",
"avatar_url": "https://avatars.githubusercontent.com/u/4342153?v=4",
"profile": "https://www.youtube.com/watch?v=1A3W75vH1D4",
"contributions": [
"code"
]
},
{
"login": "AlexPetul",
"name": "Alex Petul",
"avatar_url": "https://avatars.githubusercontent.com/u/47738904?v=4",
"profile": "https://skydi.io",
"contributions": [
"code"
]
},
{
"login": "Hugo-C",
"name": "Hugo-C",
"avatar_url": "https://avatars.githubusercontent.com/u/24675917?v=4",
"profile": "https://github.com/Hugo-C",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
"skipCi": true,
"repoType": "github",
"repoHost": "https://github.com",
"projectName": "polyfactory",
"projectOwner": "litestar-org",
"commitType": "docs"
}
python-polyfactory-3.2.0/.github/ 0000775 0000000 0000000 00000000000 15121753516 0016754 5 ustar 00root root 0000000 0000000 python-polyfactory-3.2.0/.github/CODEOWNERS 0000664 0000000 0000000 00000001132 15121753516 0020344 0 ustar 00root root 0000000 0000000 # Code owner settings for `litestar`
# @maintainers should be assigned to all reviews.
# Most specific assignment takes precedence though, so if you add a more specific thing than the `*` glob, you must also add @maintainers
# For more info about code owners see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-example
# Global Assignment
* @litestar-org/maintainers @litestar-org/members
# Documentation
docs/* @litestar-org/maintainers @JacobCoffee @provinzkraut
# polyfactory
* @adhtruong
python-polyfactory-3.2.0/.github/ISSUE_TEMPLATE/ 0000775 0000000 0000000 00000000000 15121753516 0021137 5 ustar 00root root 0000000 0000000 python-polyfactory-3.2.0/.github/ISSUE_TEMPLATE/BUG.yaml 0000664 0000000 0000000 00000004476 15121753516 0022453 0 ustar 00root root 0000000 0000000 name: "Bug Report"
description: Create an issue for a bug.
title: "Bug:
"
labels: ["bug", "triage required"]
body:
- type: textarea
id: description
attributes:
label: "Description"
description: Please enter an description of the bug you are encountering
placeholder:
validations:
required: true
- type: input
id: reprod-url
attributes:
label: "URL to code causing the issue"
description: Please enter the URL to provide a reproduction of the issue, if applicable
placeholder: ex. https://github.com/USERNAME/REPO-NAME
validations:
required: false
- type: textarea
id: mcve
attributes:
label: "MCVE"
description: "Please provide a minimal, complete, and verifiable example of the issue."
value: |
```py
# Your MCVE code here
```
render: python
validations:
required: false
- type: textarea
id: reprod
attributes:
label: "Steps to reproduce"
description: Please enter the exact steps to reproduce the issue
value: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
render: bash
validations:
required: false
- type: textarea
id: screenshot
attributes:
label: "Screenshots"
description: If applicable, add screenshots to help explain your problem.
value: |
"In the format of: ``"
validations:
required: false
- type: textarea
id: logs
attributes:
label: "Logs"
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: bash
validations:
required: false
- type: textarea
id: version
attributes:
label: "Release Version"
description: What version of the project are you using when encountering this issue?
validations:
required: true
- type: checkboxes
id: platform
attributes:
label: "Platform"
description: What platform are you encountering the issue on?
options:
- label: "Linux"
- label: "Mac"
- label: "Windows"
- label: "Other (Please specify in the description above)"
validations:
required: false
python-polyfactory-3.2.0/.github/ISSUE_TEMPLATE/DOCS.yaml 0000664 0000000 0000000 00000000576 15121753516 0022563 0 ustar 00root root 0000000 0000000 name: "Documentation Update"
description: Create an issue for documentation changes
title: "Docs: "
labels: ["documentation"]
body:
- type: textarea
id: summary
attributes:
label: "Summary"
description: Provide a brief summary of your feature request
placeholder: Describe in a few lines your feature request
validations:
required: true
python-polyfactory-3.2.0/.github/ISSUE_TEMPLATE/REQUEST.yaml 0000664 0000000 0000000 00000002301 15121753516 0023147 0 ustar 00root root 0000000 0000000 name: "Feature Request"
description: Create an issue for a new feature request
title: "Enhancement: "
labels: ["enhancement"]
body:
- type: textarea
id: summary
attributes:
label: "Summary"
description: Provide a brief summary of your feature request
placeholder: Describe in a few lines your feature request
validations:
required: true
- type: textarea
id: basic_example
attributes:
label: "Basic Example"
description: Indicate here some basic examples of your feature.
placeholder: Provide some basic example of your feature request
validations:
required: false
- type: textarea
id: drawbacks
attributes:
label: "Drawbacks and Impact"
description: What are the drawbacks or impacts of your feature request?
placeholder: Describe any the drawbacks or impacts of your feature request
validations:
required: false
- type: textarea
id: unresolved_question
attributes:
label: "Unresolved questions"
description: What, if any, unresolved questions do you have about your feature request?
placeholder: Identify any unresolved issues.
validations:
required: false
python-polyfactory-3.2.0/.github/ISSUE_TEMPLATE/config.yml 0000664 0000000 0000000 00000001201 15121753516 0023121 0 ustar 00root root 0000000 0000000 blank_lines_enabled: true
contact_links:
- name: Polyfactory Documentation
url: https://polyfactory.litestar.dev/
about: Official Polyfactory documentation - please check here before opening an issue.
- name: Litestar Documentation
url: https://docs.litestar.dev/
about: Official Litestar documentation - please check here before opening an issue.
- name: Litestar Website
url: https://litestar.dev/
about: Main Litestar website - for details about Litestar's projects.
- name: Discord
url: https://discord.gg/MmcwxztmQb
about: Join our Discord community to chat or get in touch with the maintainers.
python-polyfactory-3.2.0/.github/dependabot.yaml 0000664 0000000 0000000 00000000165 15121753516 0021747 0 ustar 00root root 0000000 0000000 version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
python-polyfactory-3.2.0/.github/workflows/ 0000775 0000000 0000000 00000000000 15121753516 0021011 5 ustar 00root root 0000000 0000000 python-polyfactory-3.2.0/.github/workflows/ci.yml 0000664 0000000 0000000 00000012241 15121753516 0022127 0 ustar 00root root 0000000 0000000 name: Tests And Linting
on:
pull_request:
push:
branches:
- main
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Instal dependencies
run: uv sync --all-groups
- uses: j178/prek-action@v1
test:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
pydantic-version: ["1.10", "2.0"]
sqla-version: ["1.4", "2"]
exclude:
- pydantic-version: "1.10"
sqla-version: "1.4"
- python-version: "3.14"
pydantic-version: "1.10"
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Set up python ${{ matrix.python-version }}
id: checkout-python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Create cache file
run: echo '${{ matrix.pydantic-version }}-${{ matrix.sqla-version }}' > ./matrix-file.txt
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
cache-dependency-glob: |
uv.lock
matrix-file.txt
- name: Install pydantic
if: matrix.pydantic-version == '1.10'
run: uv add --group pydantic "pydantic[email]==1.10.17"
- name: Pin hypothesis for pydantic 1.10
if: matrix.pydantic-version == '1.10'
run: uv add --group test "hypothesis==6.135.20"
- name: Install SQLAlchemy
if: matrix.sqla-version == '1.4'
run: uv add --group sqlalchemy "sqlalchemy[asyncio]==1.4.49"
- name: Sync
run: uv sync --all-extras
- name: Test
if: matrix.python-version != '3.13' || matrix.pydantic-version != '2.0' || matrix.sqla-version != '2'
run: uv run pytest tests
- name: Test with Coverage
if: matrix.python-version == '3.13' && matrix.pydantic-version == '2.0' && matrix.sqla-version == '2'
run: uv run pytest tests docs/examples --cov=. --cov-report=xml
- uses: actions/upload-artifact@v6
if: matrix.python-version == '3.13' && matrix.pydantic-version == '2.0' && matrix.sqla-version == '2'
with:
name: coverage-data
path: coverage.xml
build-docs:
needs:
- validate
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Install dependencies
run: uv sync --all-extras
- name: Build docs
run: uv run make docs
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: echo $PR_NUMBER > .pr_number
- name: Upload artifact
uses: actions/upload-artifact@v6
with:
name: docs-preview
include-hidden-files: true
path: |
docs/_build/html
.pr_number
codeql:
needs:
- test
- validate
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Initialize CodeQL With Dependencies
if: github.event_name == 'push' && github.ref_name == 'main'
uses: github/codeql-action/init@v4
- name: Initialize CodeQL Without Dependencies
if: github.event_name == 'pull_request'
uses: github/codeql-action/init@v4
with:
setup-python-dependencies: false
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
upload-test-coverage:
runs-on: ubuntu-latest
needs:
- test
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Download Artifacts
uses: actions/download-artifact@v7
with:
name: coverage-data
- name: Fix coverage file name
run: sed -i "s/home\/runner\/work\/polyfactory\/polyfactory/github\/workspace/g" coverage.xml
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
files: coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
test_success:
needs: test
if: always()
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Report success or fail
run: |
echo "test workflow exited with ${{ needs.test.result }}"
exit ${{ needs.test.result == 'success' && '0' || '1' }}
python-polyfactory-3.2.0/.github/workflows/docs-preview.yml 0000664 0000000 0000000 00000004445 15121753516 0024152 0 ustar 00root root 0000000 0000000 name: Deploy Documentation Preview
on:
workflow_run:
workflows: [Tests And Linting]
types: [completed]
jobs:
deploy:
if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Download artifact
uses: dawidd6/action-download-artifact@v11
with:
workflow_conclusion: success
run_id: ${{ github.event.workflow_run.id }}
path: docs-preview
name: docs-preview
- name: Set PR number
run: echo "PR_NUMBER=$(cat docs-preview/.pr_number)" >> $GITHUB_ENV
- name: Deploy docs preview
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs-preview/docs/_build/html
token: ${{ secrets.DOCS_PREVIEW_DEPLOY_TOKEN }}
repository-name: litestar-org/polyfactory-docs-preview
clean: false
target-folder: ${{ env.PR_NUMBER }}
branch: gh-pages
- uses: actions/github-script@v8
env:
PR_NUMBER: ${{ env.PR_NUMBER }}
with:
script: |
const issue_number = process.env.PR_NUMBER
const body = "Documentation preview will be available shortly at https://litestar-org.github.io/polyfactory-docs-preview/" + issue_number
const opts = github.rest.issues.listComments.endpoint.merge({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
});
const comments = await github.paginate(opts)
for (const comment of comments) {
if (comment.user.id === 41898282 && comment.body === body) {
await github.rest.issues.deleteComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id
})
}
}
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: body,
})
python-polyfactory-3.2.0/.github/workflows/docs.yml 0000664 0000000 0000000 00000001722 15121753516 0022466 0 ustar 00root root 0000000 0000000 name: Documentation Building
on:
release:
types: [published]
push:
branches:
- main
jobs:
docs:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Install dependencies
run: uv sync --all-extras
- name: Fetch gh pages
run: git fetch origin gh-pages --depth=1
- name: Build release docs
run: uv run python tools/build_docs.py docs-build
if: github.event_name == 'release'
- name: Build dev docs
run: uv run python tools/build_docs.py docs-build
if: github.event_name == 'push'
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs-build
python-polyfactory-3.2.0/.github/workflows/pr-title.yml 0000664 0000000 0000000 00000000532 15121753516 0023274 0 ustar 00root root 0000000 0000000 name: "Lint PR Title"
on:
pull_request_target:
types:
- opened
- edited
- synchronize
permissions:
pull-requests: read
jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
python-polyfactory-3.2.0/.github/workflows/publish.yml 0000664 0000000 0000000 00000002500 15121753516 0023177 0 ustar 00root root 0000000 0000000 name: Latest Release
on:
release:
types: [published]
workflow_dispatch:
jobs:
publish-release:
name: upload release to PyPI
runs-on: ubuntu-latest
permissions:
id-token: write
environment: release
steps:
- name: Check out repository
uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Build package
run: uv build
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
build-docs:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.5.4"
enable-cache: true
- name: Install dependencies
run: uv sync --all-extras
- name: Build docs
run: uv run make docs
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: docs/_build/html
python-polyfactory-3.2.0/.gitignore 0000664 0000000 0000000 00000001314 15121753516 0017403 0 ustar 00root root 0000000 0000000 # folders
__pycache__/
.auto_pytabs_cache/
.hypothesis/
.idea/
.mypy_cache/
.pytest_cache/
.scannerwork/
.venv/
.vscode/
*.egg-info/
build/
dist/
node_modules/
results/
site/
target/
# files
**/*.so
**/*.sqlite
**/*.sqlite*
*.iml
.DS_Store
.coverage
.python-version
.ruff_cache
/docs/_build/
coverage.*
setup.py
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
/.pdm-python
python-polyfactory-3.2.0/.pre-commit-config.yaml 0000664 0000000 0000000 00000003037 15121753516 0021700 0 ustar 00root root 0000000 0000000 default_language_version:
python: "3.13"
repos:
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v4.0.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-ast
- id: check-case-conflict
- id: check-merge-conflict
- id: check-toml
- id: debug-statements
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: "v0.11.0"
hooks:
- id: ruff
args: ["--fix"]
- id: ruff-format
- repo: https://github.com/crate-ci/typos
rev: v1.30.3
hooks:
- id: typos
- repo: https://github.com/pycontribs/mirrors-prettier
rev: "v3.5.3"
hooks:
- id: prettier
exclude: ".all-contributorsrc"
- repo: https://github.com/ComPWA/taplo-pre-commit
rev: v0.9.3
hooks:
- id: taplo-format
exclude: "uv.lock"
- repo: local
hooks:
- id: mypy
name: mypy
entry: uv run --all-groups mypy
language: system
exclude: "test_decimal_constraints|examples/fields/test_example_2"
types: [python]
require_serial: true
- id: pyright
name: pyright
exclude: "tests"
language: system
entry: uv run --all-groups pyright
types: [python]
- repo: https://github.com/sphinx-contrib/sphinx-lint
rev: "v1.0.0"
hooks:
- id: sphinx-lint
python-polyfactory-3.2.0/.sourcery.yaml 0000664 0000000 0000000 00000001156 15121753516 0020234 0 ustar 00root root 0000000 0000000 ignore:
- .tox/
- .venv/
- dist/
- docs/_build/
- docs/_static/
- node_modules/
- vendor/
- venv/
rule_settings:
enable: [default]
disable: [dont-import-test-modules]
rule_types:
- refactoring
- suggestion
- comment
python_version: "3.8"
rules: []
metrics:
quality_threshold: 25.0
github:
ignore_labels:
- sourcery-ignore
- docs
labels:
- build-ignore
request_review:
origin: owner
forked: author
sourcery_branch: sourcery/{base_branch}
clone_detection:
min_lines: 3
min_duplicates: 2
identical_clones_only: false
proxy:
no_ssl_verify: false
python-polyfactory-3.2.0/CONTRIBUTING.rst 0000664 0000000 0000000 00000007772 15121753516 0020072 0 ustar 00root root 0000000 0000000 Contributing
==================
Setting up the environment
--------------------------
1. Install `uv `_
2. Run ``uv sync --all-extras`` to create a `virtual environment `_ and install
the dependencies
3. Install `prek `_
4. Run ``prek install`` to install pre-commit hooks
Code contributions
------------------
Workflow
++++++++
1. `Fork `_ the `Polyfactory repository `_
2. Clone your fork locally with git
3. `Set up the environment <#setting-up-the-environment>`_
4. Make your changes
5. (Optional) Run ``prek run --all-files`` to run linters and formatters. This step is optional and will be executed
automatically by git before you make a commit, but you may want to run it manually in order to apply fixes
6. Commit your changes to git
7. Push the changes to your fork
8. Open a `pull request `_. Give the pull request a descriptive title
indicating what it changes. If it has a corresponding open issue.
For example a pull request that fixes issue ``bug: Increased stack size making it impossible to find needle``
could be titled ``fix: Make needles easier to find by applying fire to haystack``
.. tip:: Pull requests and commits all need to follow the
`Conventional Commit format `_
Project documentation
---------------------
The documentation is located in the ``/docs`` directory and is built with `ReST `_
and `Sphinx `_. If you're unfamiliar with any of those,
`ReStructuredText primer `_ and
`Sphinx quickstart `_ are recommended reads.
Docs theme and appearance
+++++++++++++++++++++++++
We welcome contributions that enhance / improve the appearance and usability of the docs. We use a custom theme that
inherits the `Shibuya theme `_, which comes with a lot of options out of the box.
If you wish to contribute to the docs style / setup, or static site generation, you should consult the theme docs
as a first step.
Running the docs locally
++++++++++++++++++++++++
To run or build the docs locally, you need to first install the required dependencies:
.. code-block:: console
:caption: Installing the docs dependencies
uv sync --all-extras
Then you can serve the documentation with ``make docs-serve``, or build them with ``make docs``
Writing and editing docs
++++++++++++++++++++++++
We welcome contributions that enhance / improve the content of the docs. Feel free to add examples, clarify text,
restructure the docs etc., but make sure to follow these guidelines:
- Write text in idiomatic english, using simple language
- Keep examples simple and self contained
- Provide links where applicable
- Use `intersphinx `_ wherever possible when
referencing external libraries
- Provide diagrams using `mermaidjs `_ where applicable and possible
Creating a new release
----------------------
1. Run `make release` to bump version and commit.
.. note:: The version should follow `semantic versioning `_ and `PEP 440 `_.
2. Push and create PR.
3. In GitHub go to the `releases tab `_
4. Pick "`Draft a new release `_"
5. Give it a title and a tag, both ``vX.X.X``
6. Fill in the release description. You can let GitHub do it for you and then edit as needed.
7. Publish the release.
8. Go to `Actions `_ and approve the workflow
9. Check that the workflow runs successfully
python-polyfactory-3.2.0/LICENSE 0000664 0000000 0000000 00000002104 15121753516 0016416 0 ustar 00root root 0000000 0000000 The MIT License (MIT)
Copyright (c) 2021, 2022, 2023 Litestar Org.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
python-polyfactory-3.2.0/Makefile 0000664 0000000 0000000 00000010371 15121753516 0017056 0 ustar 00root root 0000000 0000000 SHELL := /bin/bash
# =============================================================================
# Variables
# =============================================================================
.DEFAULT_GOAL:=help
.EXPORT_ALL_VARIABLES:
.PHONY: help
help: ## Display this help text for Makefile
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
.PHONY: upgrade
upgrade: ## Upgrade all dependencies to the latest stable versions
@echo "=> Updating all dependencies"
@uv sync --upgrade
@echo "=> Dependencies Updated"
@uv run prek autoupdate
@echo "=> Updated Pre-commit"
# =============================================================================
# Developer Utils
# =============================================================================
.PHONY: install
install: ## Install the project, dependencies, and pre-commit for local development
@if [ "$(VENV_EXISTS)" ]; then echo "=> Removing existing virtual environment"; fi
if [ "$(VENV_EXISTS)" ]; then $(MAKE) destroy; fi
if [ "$(VENV_EXISTS)" ]; then $(MAKE) clean; fi
@uv sync --all-extras
@echo "=> Installing pre-commit hooks"
@uv run prek install --install-hooks
@echo "=> Install complete! Note: If you want to re-install re-run 'make install'"
.PHONY: clean
clean: ## Cleanup temporary build artifacts
@echo "=> Cleaning working directory"
@rm -rf .pytest_cache .ruff_cache .hypothesis build/ dist/ .eggs/ .egg/
@find . -name '*.egg-info' -exec rm -rf {} +
@find . -name '*.pyc' -exec rm -f {} +
@find . -name '*.pyo' -exec rm -f {} +
@find . -name '*~' -exec rm -f {} +
@find . -name '__pycache__' -exec rm -rf {} +
@find . -name '.ipynb_checkpoints' -exec rm -rf {} +
@rm -rf .coverage coverage.xml coverage.json htmlcov/ .pytest_cache tests/.pytest_cache tests/**/.pytest_cache .mypy_cache
$(MAKE) docs-clean
.PHONY: destroy
destroy: ## Destroy the virtual environment
@rm -rf .venv
.PHONY: lock
lock: ## Rebuild lockfiles from scratch, updating all dependencies
@uv lock
.PHONY: release
release:
./tools/prepare-release.sh
# =============================================================================
# Tests, Linting, Coverage
# =============================================================================
.PHONY: lint
lint: ## Runs pre-commit hooks; includes ruff linting, ruff formatting, codespell
@echo "=> Running pre-commit process"
@uv run prek run --all-files
@echo "=> Pre-commit complete"
.PHONY: coverage
coverage: ## Run the tests and generate coverage report
@echo "=> Running tests with coverage"
@uv run pytest tests --cov=polyfactory
@uv run coverage html
@uv run coverage xml
@echo "=> Coverage report generated"
.PHONY: test
test: ## Run the tests
@echo "=> Running test cases"
@uv run pytest tests
@echo "=> Tests complete"
.PHONY: test-examples
test-examples: ## Run the examples tests
@uv run pytest docs/examples
.PHONY: test-all
test-all: test test-examples ## Run all tests
.PHONY: check-all
check-all: lint test-all coverage ## Run all linting, tests, and coverage checks
# =============================================================================
# Docs
# =============================================================================
.PHONY: docs-install
docs-install: ## Install docs dependencies
@echo "=> Installing documentation dependencies"
@uv sync --group docs
@echo "=> Installed documentation dependencies"
docs-clean: ## Dump the existing built docs
@echo "=> Cleaning documentation build assets"
@rm -rf docs/_build
@echo "=> Removed existing documentation build assets"
docs-serve: docs-clean ## Serve the docs locally
@echo "=> Serving documentation"
@uv run sphinx-autobuild docs docs/_build/ -j auto --watch polyfactory --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002
docs: docs-clean ## Dump the existing built docs and rebuild them
@echo "=> Building documentation"
@uv run sphinx-build -M html docs docs/_build/ -E -a -j auto --keep-going
python-polyfactory-3.2.0/README.md 0000664 0000000 0000000 00000105033 15121753516 0016675 0 ustar 00root root 0000000 0000000
| Project | | Status |
| --------- | :-- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CI/CD | | [](https://github.com/litestar-org/polyfactory/actions/workflows/publish.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/ci.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/pages/pages-build-deployment) |
| Quality | | [](https://codecov.io/github/litestar-org/polyfactory) |
| Package | | [](https://badge.fury.io/py/polyfactory)    |
| Community | | [](https://reddit.com/r/litestarapi) [](https://discord.gg/X3FJqy8d2j) [](https://matrix.to/#/#litestar:matrix.org) [](https://blog.litestar.dev) [](https://twitter.com/LitestarAPI) [](https://blog.litestar.dev) |
| Meta | | [](https://github.com/litestar-org/polyfactory) [](https://github.com/python/mypy) [](https://spdx.org/licenses/) [](https://github.com/sponsors/litestar-org) [](https://pydantic.dev) [](https://github.com/astral-sh/ruff) [](https://github.com/astral-sh/ruff) [](https://sourcery.ai) [](#contributors-) |
# Polyfactory
Polyfactory is a simple and powerful mock data generation library, based around type
hints and supporting dataclasses, typed-dicts, pydantic models, msgspec structs and more.
Polyfactory part of the Litestar project and as such actively maintained by a community of maintainers and contributors.
## Example
```python
from dataclasses import dataclass
from polyfactory.factories import DataclassFactory
@dataclass
class Person:
name: str
age: float
height: float
weight: float
class PersonFactory(DataclassFactory[Person]):
...
def test_is_person() -> None:
person_instance = PersonFactory.build()
assert isinstance(person_instance, Person)
```
That's it - with almost no work, we are able to create a mock data object fitting the `Person` class model definition.
This is possible because of the typing information available on the dataclass, which are used as a
source of truth for data generation.
The factory parses the information stored in the dataclass and generates a dictionary of kwargs that are passed to
`Person`.
## Documentation
Usage and API reference documentation is available on https://polyfactory.litestar.dev/.
## Installation
```shell
pip install polyfactory
```
## Relation to Pydantic-Factories
Prior to version 2, this library was known as [pydantic-factories](https://pypi.org/project/pydantic-factories/), a name
under which it gained quite a bit of popularity.
A main motivator for the 2.0 release was that we wanted to support more than just Pydantic models, something which also
required a change to its core architecture. As this library would no longer be directly tied to Pydantic, `polyfactory`
was chosen as its new name to reflect its capabilities; It can generate mock data for dataclasses, typed-dicts,
Pydantic, odmantic, and beanie ODM models, as well as custom factories.
## Contributing
This library is a community driven open source project. We welcome and encourage contributions. Please check out the
GitHub issues, read the contribution guide (at the repository's root), and you're always welcome
to [join our discord server](https://discord.gg/F4jPQzHpBU).
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
Contributions of any kind welcome!
python-polyfactory-3.2.0/codecov.yml 0000664 0000000 0000000 00000000255 15121753516 0017563 0 ustar 00root root 0000000 0000000 coverage:
status:
project:
default:
target: auto
threshold: 0.1%
patch:
default:
target: auto
comment:
require_changes: true
python-polyfactory-3.2.0/docs/ 0000775 0000000 0000000 00000000000 15121753516 0016344 5 ustar 00root root 0000000 0000000 python-polyfactory-3.2.0/docs/PYPI_README.md 0000664 0000000 0000000 00000057422 15121753516 0020476 0 ustar 00root root 0000000 0000000
| Project | | Status |
| --------- | :-- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CI/CD | | [](https://github.com/litestar-org/polyfactory/actions/workflows/publish.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/ci.yml) [](https://github.com/litestar-org/polyfactory/actions/workflows/pages/pages-build-deployment) |
| Quality | | [](https://codecov.io/github/litestar-org/polyfactory) |
| Package | | [](https://badge.fury.io/py/polyfactory)    |
| Community | | [](https://reddit.com/r/litestarapi) [](https://discord.gg/X3FJqy8d2j) [](https://matrix.to/#/#litestar:matrix.org) [](https://blog.litestar.dev) [](https://twitter.com/LitestarAPI) [](https://blog.litestar.dev) |
| Meta | | [](https://github.com/litestar-org/polyfactory) [](https://github.com/python/mypy) [](https://spdx.org/licenses/) [](https://github.com/sponsors/litestar-org) [](https://github.com/astral-sh/ruff) [](https://github.com/astral-sh/ruff) [](https://sourcery.ai) [](#contributors-) |
# Polyfactory
Polyfactory is a simple and powerful mock data generation library, based around type
hints and supporting dataclasses, typed-dicts, pydantic models, msgspec structs and more.
Polyfactory part of the Litestar project and as such actively maintained by a community of maintainers and contributors.
## Example
```python
from dataclasses import dataclass
from polyfactory.factories import DataclassFactory
@dataclass
class Person:
name: str
age: float
height: float
weight: float
class PersonFactory(DataclassFactory[Person]):
...
def test_is_person() -> None:
person_instance = PersonFactory.build()
assert isinstance(person_instance, Person)
```
That's it - with almost no work, we are able to create a mock data object fitting the `Person` class model definition.
This is possible because of the typing information available on the dataclass, which are used as a
source of truth for data generation.
The factory parses the information stored in the dataclass and generates a dictionary of kwargs that are passed to
`Person`.
## Documentation
Usage and API reference documentation is available on https://polyfactory.litestar.dev/.
## Installation
```shell
pip install polyfactory
```
## Relation to Pydantic-Factories
Prior to version 2, this library was known as [pydantic-factories](https://pypi.org/project/pydantic-factories/), a name
under which it gained quite a bit of popularity.
A main motivator for the 2.0 release was that we wanted to support more than just Pydantic models, something which also
required a change to its core architecture. As this library would no longer be directly tied to Pydantic, `polyfactory`
was chosen as its new name to reflect its capabilities; It can generate mock data for dataclasses, typed-dicts,
Pydantic, odmantic, and beanie ODM models, as well as custom factories.
## Contributing
This library is a community driven open source project. We welcome and encourage contributions. Please checkout the
GitHub issues, read the contribution guide (at the repository's root), and you're always welcome
to [join our discord server](https://discord.gg/F4jPQzHpBU).
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
Contributions of any kind welcome!
python-polyfactory-3.2.0/docs/__init__.py 0000664 0000000 0000000 00000000000 15121753516 0020443 0 ustar 00root root 0000000 0000000 python-polyfactory-3.2.0/docs/_static/ 0000775 0000000 0000000 00000000000 15121753516 0017772 5 ustar 00root root 0000000 0000000 python-polyfactory-3.2.0/docs/_static/custom.css 0000664 0000000 0000000 00000006660 15121753516 0022026 0 ustar 00root root 0000000 0000000 /* Theme color definitions */
:root {
--brand-font-size-xl: 6rem;
--brand-font-size-lg: 5rem;
--brand-font-size-md: 4rem;
--brand-font-size-sm: 3rem;
--brand-font-size-xs: 2.2rem;
--brand-font-size-xxs: 1.6rem;
--brand-letter-spacing-xl: 0.25em;
--brand-letter-spacing-lg: 0.2em;
--brand-letter-spacing-md: 0.1em;
--brand-letter-spacing-sm: 0.05em;
--brand-letter-spacing-xs: 0.03em;
}
html.light {
--sl-color-primary: #202235;
--sl-color-secondary: #edb641;
--sl-color-accent: #ffd480;
--sl-color-text-1: var(--sl-color-primary);
--sl-color-text-2: var(--sl-color-secondary);
--sy-c-foot-background: #f0f0f0;
--yue-c-text: #000;
--brand-text-glow:
0 0 10px rgba(32, 34, 53, 0.3), 0 0 20px rgba(32, 34, 53, 0.2),
0 0 30px rgba(237, 182, 65, 0.1);
}
html.dark {
--sl-color-text-1: var(--sl-color-secondary);
--sy-c-foot-background: black;
--yue-c-text: #fff;
--brand-text-glow:
0 0 10px rgba(237, 182, 65, 0.4), 0 0 20px rgba(237, 182, 65, 0.3),
0 0 30px rgba(237, 182, 65, 0.2);
}
.title-with-logo {
display: flex;
align-items: center;
justify-content: center;
margin: 5rem auto 4rem;
width: 100%;
padding: 0 2rem;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
html[class] .title-with-logo .brand-text {
font-family: var(--sl-font-sans);
font-weight: 300;
font-size: var(--brand-font-size-lg);
letter-spacing: var(--brand-letter-spacing-xl);
text-transform: uppercase;
text-align: center;
line-height: 1.4;
max-width: 100%;
white-space: nowrap;
word-break: break-word;
word-wrap: break-word;
overflow-wrap: break-word;
hyphens: auto;
-webkit-hyphens: auto;
-ms-hyphens: auto;
transition:
color var(--sl-transition),
text-shadow var(--sl-transition);
}
html.light .title-with-logo .brand-text {
color: var(--sl-color-text-1);
text-shadow: var(--brand-text-glow);
}
html.dark .title-with-logo .brand-text {
color: var(--sl-color-text-2);
text-shadow: var(--brand-text-glow);
}
/* Button container wrapping */
.buttons.wrap {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.buttons.wrap .btn-no-wrap {
flex: 0 0 auto;
}
/* Large screens */
@media (min-width: 1200px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-xl);
}
}
/* Medium-small screens */
@media (max-width: 991px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-md);
letter-spacing: var(--brand-letter-spacing-lg);
}
}
/* Small screens */
@media (max-width: 767px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-sm);
letter-spacing: var(--brand-letter-spacing-md);
}
html[class] .title-with-logo {
margin: 2rem auto 1.5rem;
}
}
/* Extra small screens */
@media (max-width: 480px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-xs);
letter-spacing: var(--brand-letter-spacing-sm);
line-height: 1.2;
}
html[class] .title-with-logo {
margin: 1.5rem auto 1rem;
padding: 0 1rem;
}
}
/* Smallest screens */
@media (max-width: 360px) {
html[class] .title-with-logo .brand-text {
font-size: var(--brand-font-size-xxs);
letter-spacing: var(--brand-letter-spacing-xs);
}
}
/* Preserve existing layout styles */
#badges img {
margin-top: 0;
margin-bottom: 0;
}
#badges {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 3em;
}
python-polyfactory-3.2.0/docs/_static/logo-default.png 0000664 0000000 0000000 00000107704 15121753516 0023073 0 ustar 00root root 0000000 0000000 PNG
IHDR { F pHYs sRGB gAMA a YIDATx_U'u!m Tb -[Jgԅ .j($7
{9kUDHN"w>I y{rf͘ߥh#L8u?̺rjy4 7wmkzzkhʏrMă'9ޥ CH irE`砺7Y;mڛgLgb6M۶Rm~#< = 倧{