Skip to content

UP-2490: Publish arthur-common to Pypi #177

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: dev
Choose a base branch
from

Conversation

alexshanabrook
Copy link
Contributor

@alexshanabrook alexshanabrook commented May 28, 2025

Jira ticket: https://arthurai.atlassian.net/browse/UP-2490

Link to passing test that I temporarily gave pypi credentials to:
https://github.com/arthur-ai/arthur-engine/actions/runs/15302597396/job/43046908838?pr=176

Link to failing test without pypi credentials, confirming users can't deploy to pypi from non-main or non-dev branches: https://github.com/arthur-ai/arthur-engine/actions/runs/15302899089/job/43047982325?pr=176

Link to project in pypi (readme has my name in it...didn't realize that would be included but it'll be overwritten on the next release): https://pypi.org/project/arthur-common/#description

Can't 100% confirm changes to version-workflow or the publish job until this gets merged since they both work on protected branches but as far as I can test this should be ready to go

@alexshanabrook alexshanabrook self-assigned this May 28, 2025
@alexshanabrook alexshanabrook changed the title UP-2590: Publish arthur-common to Pypi UP-2490: Publish arthur-common to Pypi May 28, 2025
Copy link

github-actions bot commented May 28, 2025

Coverage

Coverage Report
FileStmtsMissCoverMissing
/tmp/tmpimxmwk78
   _remote_module_non_scriptable.py392727 31%
src
   dependencies.py1204141 66%
   rules_engine.py14577 95%
   server.py1797777 57%
src/auth
   __init__.py00100% 
   api_key_validator_client.py210100% 
   auth_constants.py50100% 
   authorization_header_elements.py1944 79%
   jwk_client.py220100% 
   multi_validator.py270100% 
   oauth_validator.py90100% 
   utils.py20100% 
src/auth/ApiKeyValidator
   APIKeyValidator.py611 83%
   APIKeyvalidatorCreator.py170100% 
   MasterAPIKeyValidator.py180100% 
   UserGenAPIKeyValidator.py220100% 
   __init__.py00100% 
   enums.py40100% 
src/chat
   __init__.py00100% 
   chat.py8311 99%
   embedding.py80100% 
src/clients
   __init__.py00100% 
src/clients/auth
   abc_keycloak_client.py2266 73%
   keycloak_client.py208161161 23%
   permission_mappings.py40100% 
src/clients/s3
   InMemoryS3Client.py201111 45%
   S3Client.py503838 24%
   abc_file_client.py1566 60%
   azure_client.py191111 42%
src/clients/telemetry
   __init__.py00100% 
   telemetry_client.py841717 80%
src/config
   cache_config.py70100% 
   config.py2611 96%
   database_config.py461414 70%
   extra_features.py1544 73%
   keycloak_config.py3177 77%
   openai_config.py341313 62%
   telemetry_config.py50100% 
src/db_models
   __init__.py00100% 
   custom_types.py2166 71%
   db_models.py2400100% 
src/repositories
   __init__.py00100% 
   api_key_repository.py4122 95%
   configuration_repository.py461313 72%
   documents_repository.py563939 30%
   embedding_repository.py361212 67%
   feedback_repository.py6444 94%
   inference_repository.py14133 98%
   rules_repository.py5322 96%
   span_repository.py12744 97%
   tasks_repository.py1282020 84%
   tasks_rules_repository.py320100% 
   usage_repository.py630100% 
src/routers
   __init__.py00100% 
   api_key_routes.py6266 90%
   auth_routes.py643434 47%
   chat_routes.py1343636 73%
   health_routes.py90100% 
   route_handler.py3566 83%
   user_routes.py531616 70%
src/routers/v1
   span_routes.py590100% 
src/routers/v2
   __init__.py50100% 
   feedback_routes.py370100% 
   query_routes.py3844 89%
   routers.py70100% 
   rule_management_routes.py7066 91%
   system_management_routes.py641515 77%
   task_management_routes.py1381313 91%
   validate_routes.py6444 94%
src/schemas
   __init__.py00100% 
   common_schemas.py8577 92%
   custom_exceptions.py3433 91%
   enums.py13422 99%
   internal_schemas.py4622626 94%
   request_schemas.py1261313 90%
   response_schemas.py2090100% 
   rules_schema_utils.py5988 86%
   scorer_schemas.py520100% 
src/scorer
   __init__.py80100% 
   llm_client.py12355 96%
   score.py1366 54%
   scorer.py1444 71%
src/scorer/checks/hallucination
   v2.py1781010 94%
src/scorer/checks/keyword
   keyword.py230100% 
src/scorer/checks/pii
   classifier.py2311 96%
src/scorer/checks/prompt_injection
   classifier.py421515 64%
src/scorer/checks/regex
   regex.py170100% 
src/scorer/checks/sensitive_data
   custom_examples.py400100% 
src/scorer/checks/toxicity
   toxicity.py1051515 86%
src/scorer/checks/toxicity/toxicity_profanity
   __init__.py00100% 
   profanity.py2722 93%
src/utils
   __init__.py00100% 
   abbreviations.py10100% 
   classifiers.py4599 80%
   constants.py890100% 
   file_parsing.py513939 24%
   metric_counters.py1122 82%
   model_load.py431010 77%
   token_count.py70100% 
   trace.py1799 47%
   users.py270100% 
   utils.py2102323 89%
src/validation
   __init__.py00100% 
   prompt.py130100% 
   response.py140100% 
tests
   __init__.py30100% 
   conftest.py11755 96%
   constants.py80100% 
tests/clients
   __init__.py00100% 
   base_test_client.py4835959 88%
   integration_test_client.py822 75%
   unit_test_client.py711 86%
tests/integration
   __init__.py00100% 
   conftest.py1466 57%
   test_api_keys.py644141 36%
   test_archive_tasks.py554545 18%
   test_create_inferences.py866666 23%
   test_create_rule.py285231231 19%
   test_delete_rule.py453939 13%
   test_rule_execution.py149131131 12%
   test_session_fixtures.py301717 43%
   test_task_crud.py312323 26%
   test_token_use.py433636 16%
tests/mocks
   UserInfoMock.py100100% 
   __init__.py00100% 
   mock_jwk_client.py320100% 
   mock_keycloak_client.py822 75%
   mock_oauth_client.py231616 30%
   mock_scorer_client.py470100% 
tests/routes/chat
   test_chat_use.py00100% 
tests/routes/span
   conftest.py11799 92%
   test_span_routes.py1080100% 
tests/routes/users
   test_user_management.py00100% 
tests/unit
   __init__.py00100% 
   test_api_keys.py11433 97%
   test_chat.py540100% 
   test_embedding.py120100% 
   test_embedding_repo.py70100% 
   test_hallucination.py920100% 
   test_keyword.py220100% 
   test_pii.py1384545 67%
   test_prompt_injection.py350100% 
   test_regex.py270100% 
   test_sensitive_data.py710100% 
   test_session_fixtures.py300100% 
   test_toxicity.py920100% 
tests/unit/auth
   __init__.py00100% 
   test_jwk_client.py3322 94%
   test_oauth_validator.py911 89%
tests/unit/clients/telemetry
   test_telemetry_client.py600100% 
tests/unit/config
   test_openai_config.py1055 50%
   test_telemetry_config.py100100% 
tests/unit/repositories
   test_task_rules_repository.py600100% 
tests/unit/routes
   __init__.py00100% 
   conftest.py140100% 
   test_master_key.py210100% 
tests/unit/routes/auth
   __init__.py00100% 
   test_auth.py1236767 46%
tests/unit/routes/chat
   __init__.py00100% 
   conftest.py4155 88%
   test_chat_default_task.py310100% 
   test_chat_use.py580100% 
tests/unit/routes/configuration
   __init__.py00100% 
   test_configurations.py4488 82%
tests/unit/routes/feedback
   __init__.py20100% 
   test_create_feedback.py460100% 
   test_query_feedback.py860100% 
tests/unit/routes/inferences
   __init__.py00100% 
   conftest.py700100% 
   test_create_inferences.py11611 99%
   test_query_inferences.py33011 99%
tests/unit/routes/rules
   __init__.py00100% 
   conftest.py351111 69%
   test_create_rule.py3090100% 
   test_delete_rule.py450100% 
   test_rule_execution.py12744 97%
   test_rule_search_endpoint.py4211 98%
   test_token_use.py7277 90%
tests/unit/routes/tasks
   __init__.py00100% 
   test_archive_tasks.py690100% 
   test_task_crud.py310100% 
   test_task_search_endpoints.py5144 92%
   test_task_validate_prompt.py160100% 
tests/unit/routes/users
   __init__.py00100% 
   test_user_management.py1233 75%
tests/unit/schemas
   __init__.py00100% 
   test_request_schemas.py180100% 
tests/unit/scorer
   __init__.py00100% 
   conftest.py80100% 
   test_llm_client.py7533 96%
tests/unit/utils
   test_users.py3722 95%
   test_utils.py7277 90%
tests/unit/validation
   __init__.py00100% 
   test_prompt.py130100% 
   test_response.py140100% 
TOTAL10198181082% 

Tests Skipped Failures Errors Time
388 7 💤 0 ❌ 0 🔥 7m 35s ⏱️

@alexshanabrook
Copy link
Contributor Author

alexshanabrook commented May 28, 2025

@jdbarthur @Kacpersoftberry QQ—when you say that you want the arthur-common & genai-engine versions to be managed together, do you mean that you want them to have the same version or just to increase versions together? Right now the genai-engine version is 2.1.44 and the arthur-common version is 1.0.1. Should we be making the arthur-common version 2.1.44 so they're the same & increased together in the future, or should we leave it as is so they're different but increased together?

these version-workflow changes will require some updates based on the decision, right now it enforces that they have the same version but that won't be the case so I'll need to bump the version of arthur-common if that's the route we need to take

@Kacpersoftberry
Copy link
Contributor

@jdbarthur @Kacpersoftberry QQ—when you say that you want the arthur-common & genai-engine versions to be managed together, do you mean that you want them to have the same version or just to increase versions together? Right now the genai-engine version is 2.1.44 and the arthur-common version is 1.0.1. Should we be making the arthur-common version 2.1.44 so they're the same & increased together in the future, or should we leave it as is so they're different but increased together?

these version-workflow changes will require some updates based on the decision, right now it enforces that they have the same version but that won't be the case so I'll need to bump the version of arthur-common if that's the route we need to take

I think we can bump arthur-common to match the genai-engine version right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants