python
Package main provides a complete pipeline for Python projects using Poetry and PyPI.
Installation
dagger install github.com/felipepimentel/daggerverse/pipelines/python@fe5c52df9d4daf0d8fb91c7a683f723278fe4747
Entrypoint
Return Type
Python !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
pythonVersion | String | "3.12-alpine" | Python version to use |
gitEmail | String | "github-actions[bot]@users.noreply.github.com" | Git email for commits |
gitName | String | "github-actions[bot]" | Git username for commits |
dockerUsername | String | - | Docker Hub username |
dockerPassword | Secret | - | Docker Hub password |
skipTests | Boolean | false | Skip running tests |
skipLint | Boolean | false | Skip running linting checks |
githubToken | Secret | - | GitHub token for authentication |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@fe5c52df9d4daf0d8fb91c7a683f723278fe4747 call \
func (m *myModule) example() *Python {
return dag.
Python()
}
@function
def example() -> dag.Python:
return (
dag.python()
)
@func()
example(): Python {
return dag
.python()
}
Types
Python 🔗
Python orchestrates Python project workflows using Poetry and PyPI. It provides a complete CI/CD pipeline for Python projects, including testing, building, and publishing to PyPI.
publish() 🔗
Publish builds, tests, and publishes the Python package to PyPI. It returns the version of the published package or an error if any step fails.
Return Type
String !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | No description provided |
token | Secret ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@fe5c52df9d4daf0d8fb91c7a683f723278fe4747 call \
publish --source DIR_PATH --token env:MYSECRET
func (m *myModule) example(ctx context.Context, source *Directory, token *Secret) string {
return dag.
Python().
Publish(ctx, source, token)
}
@function
async def example(source: dagger.Directory, token: dagger.Secret) -> str:
return await (
dag.python()
.publish(source, token)
)
@func()
async example(source: Directory, token: Secret): Promise<string> {
return dag
.python()
.publish(source, token)
}
build() 🔗
Build creates a container with all dependencies installed and configured. It returns the configured container or nil if the build fails.
Return Type
Container !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@fe5c52df9d4daf0d8fb91c7a683f723278fe4747 call \
build --source DIR_PATH
func (m *myModule) example(source *Directory) *Container {
return dag.
Python().
Build(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
return (
dag.python()
.build(source)
)
@func()
example(source: Directory): Container {
return dag
.python()
.build(source)
}
test() 🔗
Test runs all quality checks and returns the combined test output. It returns an error if any check fails.
Return Type
String !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@fe5c52df9d4daf0d8fb91c7a683f723278fe4747 call \
test --source DIR_PATH
func (m *myModule) example(ctx context.Context, source *Directory) string {
return dag.
Python().
Test(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
return await (
dag.python()
.test(source)
)
@func()
async example(source: Directory): Promise<string> {
return dag
.python()
.test(source)
}
lint() 🔗
Lint runs code quality checks using Ruff. It returns an error if any check fails.
Return Type
Void !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@fe5c52df9d4daf0d8fb91c7a683f723278fe4747 call \
lint --source DIR_PATH
func (m *myModule) example(ctx context.Context, source *Directory) {
return dag.
Python().
Lint(ctx, source)
}
@function
async def example(source: dagger.Directory) -> None:
return await (
dag.python()
.lint(source)
)
@func()
async example(source: Directory): Promise<void> {
return dag
.python()
.lint(source)
}
buildEnv() 🔗
BuildEnv creates a development environment with all dependencies installed. It returns the configured container.
Return Type
Container !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
source | Directory ! | - | No description provided |
Example
dagger -m github.com/felipepimentel/daggerverse/pipelines/python@fe5c52df9d4daf0d8fb91c7a683f723278fe4747 call \
build-env --source DIR_PATH
func (m *myModule) example(source *Directory) *Container {
return dag.
Python().
BuildEnv(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
return (
dag.python()
.build_env(source)
)
@func()
example(source: Directory): Container {
return dag
.python()
.buildEnv(source)
}