Copy # Artifacts
```python
# Get the latest lib from Rapidcanvas
# !pip install --extra-index-url=https://us-central1-python.pkg.dev/rapidcanvas-361003/pypi/simple utils==0.12dev0
from utils.rc.client.requests import Requests
from utils.rc.client.auth import AuthClient
from utils.rc.dtos.project import Project
from utils.rc.dtos.dataset import Dataset
from utils.rc.dtos.recipe import Recipe
from utils.rc.dtos.transform import Transform
from utils.rc.dtos.template import Template
from utils.rc.dtos.template import TemplateTransform
from utils.rc.dtos.template import TemplateInput
from utils.rc.dtos.artifact import Artifact
from utils.rc.dtos.template_v2 import TemplateV2, TemplateTransformV2
import pandas as pd
import logging
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO)
Copy Artifact.add_file("my-outside-artifact-v1", "data/titanic.csv")
Artifact.add_file("my-outside-artifact-v1", "data/titanic-v2.csv")
Copy INFO:File successfully added
INFO:File successfully added
Copy project = Project.create(
name="Example Artifact",
description="Testing python lib",
createEmpty=True
)
Copy INFO:Found existing project by name: Example Artifact
INFO:Deleting existing project
INFO:Creating new project by name: Example Artifact
Copy {'id': '9d24f04c-c565-4abe-81dd-13c6b26d0b63', 'name': 'Example Artifact', 'description': 'Testing python lib', 'icon': None, 'image': None, 'createdAt': 1674557377075, 'updatedAt': 1674557377075, 'creator': 'roshan@rapid.ai', 'industries': [], 'useCases': [], 'metadata': {}, 'envId': None, 'canvasEdgeStyle': 'SQUARED', 'display_name': None}
Copy '9d24f04c-c565-4abe-81dd-13c6b26d0b63'
Copy titanic = project.addDataset(
dataset_name="titanic",
dataset_description="titanic golden",
dataset_file_path="data/titanic.csv"
)
Copy INFO:Creating new dataset by name:titanic
INFO:Uploading file data/titanic.csv ....
INFO:Uploading Done
Copy recipe = project.addRecipe([titanic], name="recipe_2", artifacts=["my-outside-artifact-v1"])
Copy INFO:Creating new recipe
Copy template = TemplateV2(
name="CreateArtifact", description="CreateArtifact", project_id=project.id, source="CUSTOM", status="ACTIVE", tags=["Number", "datatype-long"]
)
template_transform = TemplateTransformV2(type = "python", params=dict(notebookName="CreateArtifact.ipynb"))
template.base_transforms = [template_transform]
template.publish("transforms/CreateArtifact.ipynb")
Copy INFO:Publishing template | data=TemplateV2(name='CreateArtifact', display_name=None, id=None, version='1.0', project_id='9d24f04c-c565-4abe-81dd-13c6b26d0b63', projectId='9d24f04c-c565-4abe-81dd-13c6b26d0b63', is_global=False, description='CreateArtifact', tags=['Number', 'datatype-long'], baseTransforms=[TemplateTransformV2(type='python', params={'notebookName': 'CreateArtifact.ipynb'})], base_transforms=[TemplateTransformV2(type='python', params={'notebookName': 'CreateArtifact.ipynb'})], source='CUSTOM', status='ACTIVE', inputs=[])
INFO:Template Published
INFO:Generating grammar tables from /Users/nikunj/miniconda3/lib/python3.8/site-packages/blib2to3/Grammar.txt
INFO:Writing grammar tables to /Users/nikunj/Library/Caches/black/22.1.0/Grammar3.8.11.final.0.pickle
INFO:Writing failed: [Errno 2] No such file or directory: '/Users/nikunj/Library/Caches/black/22.1.0/tmp8zniocsr'
INFO:Generating grammar tables from /Users/nikunj/miniconda3/lib/python3.8/site-packages/blib2to3/PatternGrammar.txt
INFO:Writing grammar tables to /Users/nikunj/Library/Caches/black/22.1.0/PatternGrammar3.8.11.final.0.pickle
INFO:Writing failed: [Errno 2] No such file or directory: '/Users/nikunj/Library/Caches/black/22.1.0/tmp3cz3l0gt'
WARNING:Input notebook does not contain a cell with tag 'parameters'
INFO:Executing notebook with kernel: python3
******************************************************************
** CREATING INPUTS: artifactName, nRows, artifactFileName **
******************************************************************
Inputs created successfully | template_id=b0c76001-7faa-4dbf-850d-869ad3ced78d
Copy transform = Transform()
transform.templateId = template.id
transform.name = "transform_1"
transform.variables = {
"artifactName": "my-artifact-v1",
"nRows": "60",
"artifactFileName": "sixty"
}
Copy # recipe.prepareForLocal(transform, contextId="artifact-recipe")
Copy recipe.addTransform(transform)
Copy WARNING:
#############################################IMPORTANT#############################################
addTransform is going to deprecate soon. Please use add_transform instead
####################################################################################################
INFO:Adding new transform
INFO:Transform added Successfully
Copy INFO:Started running
INFO:You can look at the progress on UI at https://test.dev.rapidcanvas.net/#/projects/9d24f04c-c565-4abe-81dd-13c6b26d0b63
INFO:No errors found
Copy recipe.getChildrenDatasets()
Copy {'titanic_out_v2': <utils.rc.dtos.dataset.Dataset at 0x140bcdc10>}
Copy all_artifacts = Artifact.get_all()
Copy ['ml_random_forest_v15',
'my-artifact-v1',
'my-outside-artifact-v1',
'solr-artifacts',
'test-artifact-v2',
'test-artifact']
Copy assert 'my-artifact-v1' in all_artifacts, "artifacts dont match"
Copy artifact = Artifact.get('my-artifact-v1')
Copy assert 'sixty.csv' in artifact.files, "artifact files dont match"
Creating artifact outside of recipe
Copy all_artifacts = Artifact.get_all()
Copy assert 'my-outside-artifact-v1' in all_artifacts, "artifacts dont match"
Copy artifact = Artifact.get('my-outside-artifact-v1')
Copy assert 'titanic.csv' in artifact.files, "artifact files dont match"
Copy assert 'titanic-v2.csv' in artifact.files, "artifact files dont match"
Copy Artifact.delete_file("my-outside-artifact-v1", "titanic-v2.csv")
Copy INFO:File successfully deleted
Copy artifact = Artifact.get('my-outside-artifact-v1')
Copy assert 'titanic-v2.csv' not in artifact.files, "artifact files dont match"
Copy Artifact.add_file("my-outside-artifact-v2", "data/titanic.csv")
Artifact.add_file("my-outside-artifact-v2", "data/titanic-v2.csv")
Copy INFO:File successfully added
INFO:File successfully added
Copy Artifact.delete('my-outside-artifact-v2')
Copy INFO:Artifact my-outside-artifact-v2 deleted successfully!
Copy all_artifacts = Artifact.get_all()
Copy assert 'my-outside-artifact-v2' not in all_artifacts, "artifacts dont match"