Skip to content
This repository was archived by the owner on Feb 3, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ jobs:
uses: Drakkar-Software/.github/.github/workflows/python3_lint_workflow.yml@master
with:
project_main_package: octobot_tentacles_manager
use_full_requirements: true

tests:
needs: lint
Expand All @@ -31,7 +32,7 @@ jobs:
architecture: ${{ matrix.arch }}

- name: Install dependencies
run: pip install --prefer-binary -r dev_requirements.txt -r requirements.txt
run: pip install --prefer-binary -r dev_requirements.txt -r requirements.txt -r full_requirements.txt

- name: Pytests
run: |
Expand Down Expand Up @@ -62,6 +63,8 @@ jobs:
needs: tests
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: Drakkar-Software/.github/.github/workflows/python3_sdist_workflow.yml@master
with:
use_full_requirements: true
secrets:
PYPI_OFFICIAL_UPLOAD_URL: ${{ secrets.PYPI_OFFICIAL_UPLOAD_URL }}
PYPI_USERNAME: __token__
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.9.19] - 2024-11-26
### Added
[Requirements] [full] requirements installation

## [2.9.18] - 2025-11-18
### Updated
[Tentacles] add DSL operator type
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ include README.md
include LICENSE
include CHANGELOG.md
include requirements.txt
include full_requirements.txt
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# OctoBot-Tentacles-Manager [2.9.18](https://github.com/Drakkar-Software/OctoBot-Tentacles-Manager/tree/master/CHANGELOG.md)
# OctoBot-Tentacles-Manager [1.9.19](https://github.com/Drakkar-Software/OctoBot-Tentacles-Manager/tree/master/CHANGELOG.md)
[![PyPI](https://img.shields.io/pypi/v/OctoBot-Tentacles-Manager.svg)](https://pypi.python.org/pypi/OctoBot-Tentacles-Manager/)
[![Downloads](https://pepy.tech/badge/OctoBot-Tentacles-Manager/month)](https://pepy.tech/project/OctoBot-Tentacles-Manager)
[![Github-Action-CI](https://github.com/Drakkar-Software/OctoBot-Tentacles-Manager/workflows/OctoBot-Tentacles-Manager-CI/badge.svg)](https://github.com/Drakkar-Software/OctoBot-Tentacles-Manager/actions)
Expand Down
14 changes: 14 additions & 0 deletions full_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Drakkar-Software requirements
OctoBot-Commons[full]>=1.9.88, <1.10

# Tentacles compilation requirements
cython==0.29.32

# Templating requirements
jinja2>=3.0.3

# artifact metadata
pyyaml>=6.0

# s3
aioboto3==12.1.0
2 changes: 1 addition & 1 deletion octobot_tentacles_manager/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this library.

VERSION = "2.9.18"
VERSION = "1.9.19"
PROJECT_NAME = "OctoBot-Tentacles-Manager"
14 changes: 13 additions & 1 deletion octobot_tentacles_manager/creators/tentacle_creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,19 @@
import os
import os.path as path
import logging
import jinja2.nativetypes as nativetypes
import octobot_commons.constants
try:
import jinja2.nativetypes as nativetypes
except ImportError:
if octobot_commons.constants.USE_MINIMAL_LIBS:
# mock jsonschema imports
class NativetypesImportMock:
class NativeEnvironment:
def __init__(self, *args):
raise ImportError("jinja2 not installed")
nativetypes = NativetypesImportMock()
else:
raise

import octobot_commons.logging as common_logging
import octobot_tentacles_manager.constants as constants
Expand Down
13 changes: 12 additions & 1 deletion octobot_tentacles_manager/exporters/artifact_exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,18 @@

import aiofiles
import octobot_commons.logging as logging
import yaml
import octobot_commons.constants as commons_constants
try:
import yaml
except ImportError:
if commons_constants.USE_MINIMAL_LIBS:
# mock yaml imports
class YamlImportMock:
def dump(self, *args):
raise ImportError("yaml not installed")
yaml = YamlImportMock()
else:
raise

import octobot_tentacles_manager.models as models
import octobot_tentacles_manager.constants as constants
Expand Down
13 changes: 12 additions & 1 deletion octobot_tentacles_manager/exporters/tentacle_package_exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,18 @@
import os

import aiofiles
import yaml
import octobot_commons.constants as commons_constants
try:
import yaml
except ImportError:
if commons_constants.USE_MINIMAL_LIBS:
# mock yaml imports
class YamlImportMock:
def safe_load(self, *args):
raise ImportError("yaml not installed")
yaml = YamlImportMock()
else:
raise

import octobot_tentacles_manager.exporters.artifact_exporter as artifact_exporter
import octobot_tentacles_manager.models as models
Expand Down
14 changes: 13 additions & 1 deletion octobot_tentacles_manager/uploaders/s3_uploader.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,19 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this library.
import os
import aioboto3
import octobot_commons.constants as commons_constants
try:
import aioboto3
except ImportError:
if commons_constants.USE_MINIMAL_LIBS:
# mock aioboto3 imports
class Aioboto3ImportMock:
class Session:
def __init__(self, *args):
raise ImportError("aioboto3 not installed")
aioboto3 = Aioboto3ImportMock()
else:
raise
import logging

import octobot_tentacles_manager.uploaders.uploader as uploader
Expand Down
12 changes: 1 addition & 11 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,24 +1,14 @@
# Tentacles compilation requirements
setuptools
cython==0.29.32

# Drakkar-Software requirements
OctoBot-Commons>=1.9.44, <1.10
OctoBot-Commons>=1.9.88, <1.10

# async files management
aiofiles>=0.6.0, <0.7

# async http requests
aiohttp>=3.9.5

# Templating requirements
jinja2>=3.0.3

# artifact metadata
pyyaml>=6.0

# version comparison
packaging>=25.0

# s3
aioboto3==12.1.0
4 changes: 4 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
DESCRIPTION = f.read()

REQUIRED = open('requirements.txt').readlines()
FULL_REQUIRED = open('full_requirements.txt').readlines()
REQUIRES_PYTHON = '>=3.8'

setup(
Expand All @@ -44,6 +45,9 @@
zip_safe=False,
data_files=[],
install_requires=REQUIRED,
extras_require={
'full': FULL_REQUIRED,
},
python_requires=REQUIRES_PYTHON,
entry_points={
'console_scripts': [
Expand Down