From 9e232cc48430eb514d57fc8ddc11337815793852 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:31:41 +0000 Subject: [PATCH 01/11] [#137] Updated README. --- README.rst | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index 520ebdc5..ea484d8c 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,4 @@ -|travis| |license| |pyversion| |pypiversion| |wheel| - -.. |travis| image:: https://travis-ci.com/eoyilmaz/stalker.svg?branch=master - :target: https://travis-ci.com/eoyilmaz/stalker - :alt: Travis-CI Build Status +|license| |pyversion| |pypiversion| |wheel| [![Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) .. |license| image:: https://img.shields.io/badge/License-LGPL%20v3-blue.svg :target: http://www.gnu.org/licenses/lgpl-3.0 @@ -54,6 +50,7 @@ Stalker is mainly build over the following OpenSource libraries: * Python * SQLAlchemy and Alembic + * PostgreSQL * Jinja2 * TaskJuggler From 34387978949816e9df46f86991462b2de586f970 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:34:25 +0000 Subject: [PATCH 02/11] [#137] Fix for the tests link. --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index ea484d8c..6d26295a 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,4 @@ -|license| |pyversion| |pypiversion| |wheel| [![Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) +|license| |pyversion| |pypiversion| |wheel| [![Stalker Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) .. |license| image:: https://img.shields.io/badge/License-LGPL%20v3-blue.svg :target: http://www.gnu.org/licenses/lgpl-3.0 From 47c438d5e2a54b993d91061b04393042ad940bdf Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:34:56 +0000 Subject: [PATCH 03/11] [#137] Fix for the tests link. --- README.rst => README | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.rst => README (100%) diff --git a/README.rst b/README similarity index 100% rename from README.rst rename to README From 52b6836a08322c6c620740743df1b80bf36063bb Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:35:26 +0000 Subject: [PATCH 04/11] [#137] Fix for the README. --- README => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README => README.md (100%) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md From dd977843a3f8d001161bec74209c94318df40d3c Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:37:20 +0000 Subject: [PATCH 05/11] [#137] Updating badges in README. --- README.rst | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 README.rst diff --git a/README.rst b/README.rst new file mode 100644 index 00000000..6a2cf47e --- /dev/null +++ b/README.rst @@ -0,0 +1,120 @@ +|license| |pyversion| |pypiversion| |wheel| + + +[![license](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)][http://www.gnu.org/licenses/lgpl-3.0] +[![Stalker Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) + +.. |license| image:: https://img.shields.io/badge/License-LGPL%20v3-blue.svg + :target: http://www.gnu.org/licenses/lgpl-3.0 + :alt: License + +.. |pyversion| image:: https://img.shields.io/pypi/pyversions/stalker.svg + :target: https://pypi.python.org/pypi/stalker + :alt: Supported Python versions + +.. |pypiversion| image:: https://img.shields.io/pypi/v/stalker.svg + :target: https://pypi.python.org/pypi/stalker + :alt: PyPI Version + +.. |wheel| image:: https://img.shields.io/pypi/wheel/stalker.svg + :target: https://pypi.python.org/pypi/stalker + :alt: Wheel Support + +===== +About +===== + +Stalker is an Open Source Production Asset Management (ProdAM) Library designed +specifically for Animation and VFX Studios. But it can be used for any kind of +projects from any other industry. Stalker is licensed under LGPL v3. + +Features +======== + +Stalker has the following features: + + * Designed for **Animation and VFX Studios** (but not limited to). + * OS independent, can work simultaneously with **Windows**, **macOS** and + **Linux**. + * Supplies excellent **Project Management** capabilities, i.e. scheduling and + tracking tasks, milestones and deadlines (via **TaskJuggler**). + * Powerful **Asset management** capabilities, allows tracking of asset + references in shots, scenes, sequences and projects. + * Customizable object model (**Stalker Object Model - SOM**). + * Uses **TaskJuggler** as the project planing and tracking backend. + * Mainly developed for **PostgreSQL** in mind but **SQLite3** is also + supported. + * Can be connected to all the major 3D animation packages like **Maya, + Houdini, Nuke, Fusion, DaVinci Resolve, Blender** etc. and any application + that has a Python API, and for **Adobe Suite** applications like + **Adobe Photoshop** through ``win32com`` or ``comtypes`` libraries. + * Developed with religious **TDD** practices. + +Stalker is mainly build over the following OpenSource libraries: + + * Python + * SQLAlchemy and Alembic + * PostgreSQL + * Jinja2 + * TaskJuggler + +As Stalker is a Python library and doesn't supply any graphical UI you can use +other tools like `Stalker Pyramid`_ which is a Pyramid Web Application and +`Anima`_ which has PyQt/PySide UIs for applications like Houdini, Maya, +Blender, Nuke, Fusion, DaVinci Resolve, Photoshop and many more. + +.. _`Stalker Pyramid`: https://github.com/eoyilmaz/stalker_pyramid +.. _`Anima`: https://github.com/eoyilmaz/anima + +Installation +============ + +Simply use: + +.. code-block:: shell + + pip install stalker + +Examples +======== + +Let's play with **Stalker**. + +Because Stalker uses SQLAlchemy, it is very easy to retrieve complex data. +Let's say that you want to query all the Shot Lighting tasks where a specific +asset is referenced: + +.. code-block:: python + + from stalker import Asset, Shot, Version + + my_asset = Asset.query.filter_by(name="My Asset").first() + refs = Version.query.filter_by(name="Lighting").filter(Version.inputs.contains(my_asset)).all() + +Let's say you want to get all the tasks assigned to you in a specific Project: + +.. code-block:: python + + from stalker import Project, Task, User + + me = User.query.filter_by(name="Erkan Ozgur Yilmaz").first() + my_project = Project.query.filter_by(name="My Project").first() + query = Task.query.filter_by(project=my_project).filter(Task.resources.contains(me)) + my_tasks = query.all() + +You can further query let's say your WIP tasks by adding more criteria to the ``query`` +object: + +.. code-block:: python + + from stalker import Status + + wip = Status.query.filter_by(code="WIP").first() + query = query.filter_by(status=wip) + my_wip_tasks = query.all() + +and that's the way to get complex data in Stalker. + +See more detailed examples in `API Tutorial`_. + +.. _API Tutorial: https://pythonhosted.org/stalker/tutorial.html From 154ca23ec339b0d64527d76bad5ffb3566641622 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:38:53 +0000 Subject: [PATCH 06/11] [#137] Updating badges in README. --- README.md | 7 +++- README.rst | 120 ----------------------------------------------------- 2 files changed, 6 insertions(+), 121 deletions(-) delete mode 100644 README.rst diff --git a/README.md b/README.md index 6d26295a..a616699b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ -|license| |pyversion| |pypiversion| |wheel| [![Stalker Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) +|license| |pyversion| |pypiversion| |wheel| + + +[![license](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)][http://www.gnu.org/licenses/lgpl-3.0] + +[![Stalker Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) .. |license| image:: https://img.shields.io/badge/License-LGPL%20v3-blue.svg :target: http://www.gnu.org/licenses/lgpl-3.0 diff --git a/README.rst b/README.rst deleted file mode 100644 index 6a2cf47e..00000000 --- a/README.rst +++ /dev/null @@ -1,120 +0,0 @@ -|license| |pyversion| |pypiversion| |wheel| - - -[![license](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)][http://www.gnu.org/licenses/lgpl-3.0] -[![Stalker Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) - -.. |license| image:: https://img.shields.io/badge/License-LGPL%20v3-blue.svg - :target: http://www.gnu.org/licenses/lgpl-3.0 - :alt: License - -.. |pyversion| image:: https://img.shields.io/pypi/pyversions/stalker.svg - :target: https://pypi.python.org/pypi/stalker - :alt: Supported Python versions - -.. |pypiversion| image:: https://img.shields.io/pypi/v/stalker.svg - :target: https://pypi.python.org/pypi/stalker - :alt: PyPI Version - -.. |wheel| image:: https://img.shields.io/pypi/wheel/stalker.svg - :target: https://pypi.python.org/pypi/stalker - :alt: Wheel Support - -===== -About -===== - -Stalker is an Open Source Production Asset Management (ProdAM) Library designed -specifically for Animation and VFX Studios. But it can be used for any kind of -projects from any other industry. Stalker is licensed under LGPL v3. - -Features -======== - -Stalker has the following features: - - * Designed for **Animation and VFX Studios** (but not limited to). - * OS independent, can work simultaneously with **Windows**, **macOS** and - **Linux**. - * Supplies excellent **Project Management** capabilities, i.e. scheduling and - tracking tasks, milestones and deadlines (via **TaskJuggler**). - * Powerful **Asset management** capabilities, allows tracking of asset - references in shots, scenes, sequences and projects. - * Customizable object model (**Stalker Object Model - SOM**). - * Uses **TaskJuggler** as the project planing and tracking backend. - * Mainly developed for **PostgreSQL** in mind but **SQLite3** is also - supported. - * Can be connected to all the major 3D animation packages like **Maya, - Houdini, Nuke, Fusion, DaVinci Resolve, Blender** etc. and any application - that has a Python API, and for **Adobe Suite** applications like - **Adobe Photoshop** through ``win32com`` or ``comtypes`` libraries. - * Developed with religious **TDD** practices. - -Stalker is mainly build over the following OpenSource libraries: - - * Python - * SQLAlchemy and Alembic - * PostgreSQL - * Jinja2 - * TaskJuggler - -As Stalker is a Python library and doesn't supply any graphical UI you can use -other tools like `Stalker Pyramid`_ which is a Pyramid Web Application and -`Anima`_ which has PyQt/PySide UIs for applications like Houdini, Maya, -Blender, Nuke, Fusion, DaVinci Resolve, Photoshop and many more. - -.. _`Stalker Pyramid`: https://github.com/eoyilmaz/stalker_pyramid -.. _`Anima`: https://github.com/eoyilmaz/anima - -Installation -============ - -Simply use: - -.. code-block:: shell - - pip install stalker - -Examples -======== - -Let's play with **Stalker**. - -Because Stalker uses SQLAlchemy, it is very easy to retrieve complex data. -Let's say that you want to query all the Shot Lighting tasks where a specific -asset is referenced: - -.. code-block:: python - - from stalker import Asset, Shot, Version - - my_asset = Asset.query.filter_by(name="My Asset").first() - refs = Version.query.filter_by(name="Lighting").filter(Version.inputs.contains(my_asset)).all() - -Let's say you want to get all the tasks assigned to you in a specific Project: - -.. code-block:: python - - from stalker import Project, Task, User - - me = User.query.filter_by(name="Erkan Ozgur Yilmaz").first() - my_project = Project.query.filter_by(name="My Project").first() - query = Task.query.filter_by(project=my_project).filter(Task.resources.contains(me)) - my_tasks = query.all() - -You can further query let's say your WIP tasks by adding more criteria to the ``query`` -object: - -.. code-block:: python - - from stalker import Status - - wip = Status.query.filter_by(code="WIP").first() - query = query.filter_by(status=wip) - my_wip_tasks = query.all() - -and that's the way to get complex data in Stalker. - -See more detailed examples in `API Tutorial`_. - -.. _API Tutorial: https://pythonhosted.org/stalker/tutorial.html From 44d6e360d2d653bf04e3ae973e0545c79d8c7f45 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:42:03 +0000 Subject: [PATCH 07/11] [#137] Updating badges in README. --- README.md | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index a616699b..d553e6d2 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,8 @@ -|license| |pyversion| |pypiversion| |wheel| - - -[![license](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)][http://www.gnu.org/licenses/lgpl-3.0] - -[![Stalker Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) - -.. |license| image:: https://img.shields.io/badge/License-LGPL%20v3-blue.svg - :target: http://www.gnu.org/licenses/lgpl-3.0 - :alt: License - -.. |pyversion| image:: https://img.shields.io/pypi/pyversions/stalker.svg - :target: https://pypi.python.org/pypi/stalker - :alt: Supported Python versions - -.. |pypiversion| image:: https://img.shields.io/pypi/v/stalker.svg - :target: https://pypi.python.org/pypi/stalker - :alt: PyPI Version - -.. |wheel| image:: https://img.shields.io/pypi/wheel/stalker.svg - :target: https://pypi.python.org/pypi/stalker - :alt: Wheel Support +[![license](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](http://www.gnu.org/licenses/lgpl-3.0) +[![Supported Python versions](https://img.shields.io/pypi/pyversions/stalker.svg)](https://pypi.python.org/pypi/stalker) +[![PyPI Version](https://img.shields.io/pypi/v/stalker.svg)](https://pypi.python.org/pypi/stalker) +[![Wheel Support](https://img.shields.io/pypi/wheel/stalker.svg)](https://pypi.python.org/pypi/stalker) +[![Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) ===== About From f7b76cca1b9e8991359b0c68172b4af1239db041 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:43:09 +0000 Subject: [PATCH 08/11] [#137] Updated test badge in README. --- .github/workflows/pytest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index bb19ab00..f34d4e33 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -1,4 +1,4 @@ -name: Stalker Tests +name: Unit Tests on: pull_request: types: [opened, synchronize, reopened, ready_for_review, unlabeled] From be82619c303b99a7201ab8d3c0a466ae559e52de Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:47:20 +0000 Subject: [PATCH 09/11] [#137] Added total downloads badge to `README.md`. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d553e6d2..b18c7415 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ [![license](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](http://www.gnu.org/licenses/lgpl-3.0) [![Supported Python versions](https://img.shields.io/pypi/pyversions/stalker.svg)](https://pypi.python.org/pypi/stalker) +[![Unit Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) [![PyPI Version](https://img.shields.io/pypi/v/stalker.svg)](https://pypi.python.org/pypi/stalker) -[![Wheel Support](https://img.shields.io/pypi/wheel/stalker.svg)](https://pypi.python.org/pypi/stalker) -[![Tests](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml/badge.svg)](https://github.com/eoyilmaz/stalker/actions/workflows/pytest.yml) +[![PyPI Downloads](https://static.pepy.tech/badge/stalker)](https://pepy.tech/projects/stalker) ===== About From 381a40b19657348e1d134a7002678f57f4235368 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:51:44 +0000 Subject: [PATCH 10/11] [#137] Updated `README.md` format. --- README.md | 57 +++++++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index b18c7415..50a07fce 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ [![PyPI Version](https://img.shields.io/pypi/v/stalker.svg)](https://pypi.python.org/pypi/stalker) [![PyPI Downloads](https://static.pepy.tech/badge/stalker)](https://pepy.tech/projects/stalker) -===== About ===== @@ -43,21 +42,19 @@ Stalker is mainly build over the following OpenSource libraries: * TaskJuggler As Stalker is a Python library and doesn't supply any graphical UI you can use -other tools like `Stalker Pyramid`_ which is a Pyramid Web Application and -`Anima`_ which has PyQt/PySide UIs for applications like Houdini, Maya, -Blender, Nuke, Fusion, DaVinci Resolve, Photoshop and many more. - -.. _`Stalker Pyramid`: https://github.com/eoyilmaz/stalker_pyramid -.. _`Anima`: https://github.com/eoyilmaz/anima +other tools like [Stalker Pyramid](https://github.com/eoyilmaz/stalker_pyramid) +which is a Pyramid Web Application and [Anima](https://github.com/eoyilmaz/anima) +which has PyQt/PySide UIs for applications like Houdini, Maya, Blender, Nuke, +Fusion, DaVinci Resolve, Photoshop and many more. Installation ============ Simply use: -.. code-block:: shell - - pip install stalker +```shell +pip install stalker +``` Examples ======== @@ -68,37 +65,35 @@ Because Stalker uses SQLAlchemy, it is very easy to retrieve complex data. Let's say that you want to query all the Shot Lighting tasks where a specific asset is referenced: -.. code-block:: python - - from stalker import Asset, Shot, Version +```python +from stalker import Asset, Shot, Version - my_asset = Asset.query.filter_by(name="My Asset").first() - refs = Version.query.filter_by(name="Lighting").filter(Version.inputs.contains(my_asset)).all() +my_asset = Asset.query.filter_by(name="My Asset").first() +refs = Version.query.filter_by(name="Lighting").filter(Version.inputs.contains(my_asset)).all() +``` Let's say you want to get all the tasks assigned to you in a specific Project: -.. code-block:: python +```python +from stalker import Project, Task, User - from stalker import Project, Task, User - - me = User.query.filter_by(name="Erkan Ozgur Yilmaz").first() - my_project = Project.query.filter_by(name="My Project").first() - query = Task.query.filter_by(project=my_project).filter(Task.resources.contains(me)) - my_tasks = query.all() +me = User.query.filter_by(name="Erkan Ozgur Yilmaz").first() +my_project = Project.query.filter_by(name="My Project").first() +query = Task.query.filter_by(project=my_project).filter(Task.resources.contains(me)) +my_tasks = query.all() +``` You can further query let's say your WIP tasks by adding more criteria to the ``query`` object: -.. code-block:: python - - from stalker import Status +```python +from stalker import Status - wip = Status.query.filter_by(code="WIP").first() - query = query.filter_by(status=wip) - my_wip_tasks = query.all() +wip = Status.query.filter_by(code="WIP").first() +query = query.filter_by(status=wip) +my_wip_tasks = query.all() +``` and that's the way to get complex data in Stalker. -See more detailed examples in `API Tutorial`_. - -.. _API Tutorial: https://pythonhosted.org/stalker/tutorial.html +See more detailed examples in [API Tutorial](https://pythonhosted.org/stalker/tutorial.html). From 35b4fc86c7b40d26ea68fa839e7ef7bf9d660bb6 Mon Sep 17 00:00:00 2001 From: Erkan Ozgur Yilmaz Date: Mon, 16 Dec 2024 12:55:40 +0000 Subject: [PATCH 11/11] [#137] Updated links in `README.md` file. --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 50a07fce..01e55f87 100644 --- a/README.md +++ b/README.md @@ -35,11 +35,11 @@ Stalker has the following features: Stalker is mainly build over the following OpenSource libraries: - * Python - * SQLAlchemy and Alembic - * PostgreSQL - * Jinja2 - * TaskJuggler + * [Python](https://www.python.org) + * [PostgreSQL](https://www.postgresql.org/) + * [SQLAlchemy](https://www.sqlalchemy.org/) + * [Jinja2](https://jinja.palletsprojects.com/en/stable/) + * [TaskJuggler](https://taskjuggler.org/) As Stalker is a Python library and doesn't supply any graphical UI you can use other tools like [Stalker Pyramid](https://github.com/eoyilmaz/stalker_pyramid)