Partition
Documentation for Aryn SDK Partition
Please find the documentation for the Aryn SDK Partition module below. All parameters are optional unless specified otherwise.
Synchronous Partitioning Functions
partition_file
Sends a file to Aryn DocParse and returns a Python dictionary with elements containing its document structure and text.
-
file
: Required. Afile
opened in binary mode to parse or a path expressed as astr
or aPathLike
object specifying where the file to parse is. -
threshold
: Afloat
between0.0
and1.0
, inclusive, which serves as a cutoff to determine which bounding boxes for the file are returned or a stringauto
(the default) where the service uses a processing method to find the best prediction for each possible bounding box. Only bounding boxes that the model predicts with a confidence score higher than the threshold specified will be returned. A lower value will include more objects but may have overlaps, while a higher value will reduce the number of overlaps but may miss legitimate objects. If you do set the threshold manually, we recommend starting with a value of0.32
. -
use_ocr
: A boolean value that, when set toTrue
, causes DocParse to extract text using an OCR model. This is useful when the text is not directly extractable from the PDF, such as when the text is part of an image or when the text is rotated. When set toFalse
, DocParse extracts embedded text from the input document. Default isFalse
. -
text_extraction_options
: A map with string keys specifying options for text extraction.ocr_text_mode
: A string that specifies the mode to use for OCR text extraction. The default isstandard
, which uses the conventional classical OCR pipeline to process documents. The other option isvision
, which uses a vision model for OCR. Note thatvision
is only available for non-table elements (standard
will be used for table elements) and for PAYG users only.
-
extract_table_structure
: A boolean that, whenTrue
, enables DocParse to extract tables and their structural content using a purpose built table extraction model. If set toFalse
, tables are still identified but not analyzed for their structure; as a result, table cells and their bounding boxes are not included in the response. Default isFalse
. -
table_extraction_options
: A map with string keys specifying options for table extraction. Only applied whenextract_table_structure
isTrue
. Default is empty ({}
)-
include_additional_text
: Boolean. WhenTrue
, DocParse will attempt to enhance the table structure by merging in tokens from text extraction. This can be useful for working with tables that have missing or misaligned text. Default isFalse
-
model_selection
: String. An expression to instruct DocParse how to select the table model to use for extraction. Default is"pixels > 500 -> deformable_detr; table_transformer"
, which means “if the largest dimension of the table is more than 500 pixels, use deformable_detr; otherwise use table_transformer.” To use only deformable_detr or table_transformer, setmodel_selection="deformable_detr"
ormodel_selection="table_transformer"
. Selection expressions are of the formmetric cmp threshold -> model; metric cmp threshold -> model; model
And should be read as a series of
if metric compares to threshold, then use model
statements. Statements are processed from left to right.- Supported models are
table_transformer
, which tends to do well with smaller tables, anddeformable_detr
, which tends to do better with larger tables. - Supported metrics are
pixels
, which corresponds to the maximum dimension of the bounding box containing the table (we find this to be easier to reason about than the total number of pixels which depends on two numbers), andchars
, which corresponds to the total number of characters within the table as determined by the OCR/text extraction step. - Thresholds must be numeric.
- Supported comparison operators are
<, >, <=, >=, ==, !=
.
A statement with no metric, comparison, and threshold can be thought of as a default, where statements after the default will not be processed. If no such ‘unconditional’ statement is included and no conditions match, DocParse will default to table_transformer. Anything after the unconditional statement will not be processed. Examples:
table_transformer
=> always use table transformerpixels > 500 -> deformable_detr; table_transformer
=> if the biggest dimension of the table is greater than 500 pixels use deformable detr. Otherwise use table_transformer.pixels>50->table_transformer; chars<30->deformable_detr;chars>35->table_transformer;pixels>2->deformable_detr;table_transformer;comment
=> if the biggest dimension is more than 50 pixels use table transformer. Else if the total number of chars in the table is less than 30 use deformable_detr. Else if there are mode than 35 chars use table transformer. Else if there are more than 2 pixels in the biggest dimension use deformable detr. Otherwise use table transformer. comment is not processed.
- Supported models are
-
-
extract_images
: A boolean that determines whether to extract images from the document. Default:False
. -
summarize_images
: (PAYG Only) A boolean that, whenTrue
, generates a summary of the images in the document and returns it as thetext_representation
. WhenFalse
, images are not summarized. Default isFalse
. -
selected_pages
: A list specifying individual pages (1-indexed) and page ranges from the document to partition. Single pages are specified as integers and ranges are specified as lists with two integer entries in ascending order. A valid example value for selected_pages is[1, 10, [15, 20]]
which would include pages 1, 10, 15, 16, 17 …, 20.selected_pages
isNone
by default, which results in all pages of the document being parsed. -
chunking_options
: A dictionary of options for specifying chunking behavior. Chunking is only performed when this option is present, and default options are chosen whenchunking_options
is specified as{}
.strategy
: A string specifying the strategy to use to combine and split chunks. Valid values arecontext_rich
andmaximize_within_limit
. The default and recommended chunker iscontext_rich
as{'strategy': 'context_rich'}
.- Behavior of
context_rich
chunker: The goal of this strategy is to add context to evenly-sized chunks. This is most useful for retrieval based GenAI applications. Context_rich chunking combines adjacentsection-header
andtitle
elements into a newsection-header
element. Merges elements into a chunk with its most recentsection-header
. If the chunk would contain too many tokens, then it starts a new chunk copying the section-header to the start of this new chunk and continues. Merges elements on different pages, unlessmerge_across_pages
is set toFalse
. - Behavior of
maximize_within_limit
chunker: The goal of themaximize_within_limit
chunker is to make the chunks as large as possible. Merges elements into the last most recently merged set of elements unless doing so would make its token count exceedmax_tokens
. In that case, it would keep the new element separate and start merging subsequent elements into that one, following the same rule. Merges elements on different pages, unlessmerge_across_pages
is set toFalse
.
- Behavior of
max_tokens
: An integer specifying the cutoff for splitting chunks that are too large. Default value is 512.tokenizer
: A string specifying the tokenizer to use when determining how characters in a chunk are grouped. Valid values areopenai_tokenizer
,character_tokenizer
, andhuggingface_tokenizer
. Defaults toopenai_tokenizer
.tokenizer_options
: A nested dictionary with string keys specifying the options for the chosen tokenizer. Defaults to{'model_name': 'text-embedding-3-small'}
, which works with the OpenAI tokenizer.- Available options for
openai_tokenizer
:model_name
: Accepts all models supported by OpenAI’s tiktoken tokenizer. Default is “text-embedding-3-small”
- Available options for
HuggingFaceTokenizer
:model_name
: Accepts all huggingface tokenizers from the huggingface/tokenizers repo.
character_tokenizer
does not take any options.
- Available options for
merge_across_pages
: Aboolean
that whenTrue
the selected chunker will attempt to merge chunks across page boundaries. Does not apply to themixed_multi_column
merger, which never merges across pages. Defaults toTrue
.
-
output_format
: A string controlling the output representation. Defaults tojson
which yields an array calledelements
which contains the partitioned elements, represented in JSON. If set tomarkdown
the service response will instead include a field calledmarkdown
that contains a string representing the entire document in Markdown format. -
output_label_options
: A dictionary of options to specify which heuristic to apply to enforce certain label outputs. If this option is not specified, no heuristic is applied. The options the dictionary supports are listed below.promote_title
: A boolean that specifies whether to promote an element to title if there’s no title in the output.title_candidate_elements
: A list of strings that are candidate elements to be promoted to title.orientation_correction
: A boolean value that specifies whether to correct the orientation of rotated pages during the preprocessing step.
-
markdown_options
: A dictionary of options to specify what to include in the markdown output.include_pagenum
: A boolean that specifies whether to include page numbers in the markdown output. Default isFalse
.include_headers
: A boolean that specifies whether to include headers in the markdown output. Default isFalse
.include_footers
: A boolean that specifies whether to include footers in the markdown output. Default isFalse
.
-
ssl_verify
: Aboolean
that controls whether the client verifies the SSL certificate of the chosen DocParse server. ssl_verify isTrue
by default, enforcing SSL verification. -
aryn_config
: An ArynConfig object (defined in aryn_sdk/config.py), used for finding an api key. If aryn_api_key is set it will override this. The default ArynConfig looks in the env varARYN_API_KEY
and then in the file ~/.aryn/config.yaml. Default is None (aryn-sdk will look in the aryn_api_key parameter, in your environment variables, and then in ~/.aryn/config.yaml). -
aryn_api_key
: An Aryn API key, provided as a string. You can get one for free at aryn.ai/get-started. Default isNone
(If not provided, the sdk will check for it in the environment variableARYN_API_KEY
or will look in aryn_config as specified above).
from aryn_sdk.partition import partition_file
with open("my-favorite-pdf.pdf", "rb") as f:
data = partition_file(
f,
aryn_api_key="MY-ARYN-API-KEY",
use_ocr=True,
extract_table_structure=True,
extract_images=True
)
elements = data['elements']
A dictionary containing keys status
and elements
. If output_format is markdown
, returns a dictionary of status
and markdown
.
User errors:
HTTPError: Error:status_code 403
. Reason:"This async action requires you to upgrade your account plan"
- Fix: Please upgrade your account here
HTTPError: Error:status_code 403
. Reason:"No Aryn API Key provided"
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Invalid Aryn API key"
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Expired Aryn API key"
- Fix: Please get a new API key here.
Other errors:
HTTPError: Error:status_code 5xx
. Reason:Internal Server Error
Aynchronous Partitioning Functions
partition_file_async_submit
Submit a document for asynchronous partitioning and get its task_id
. The results of the task will remain available in the system for 48 hours. Meant to be used with partition_file_async_result
.
Note: sending multiple asynchronous partitioning tasks at the same time does not guarantee that they will run simultaneously.
-
file
: Required. Afile
opened in binary mode to parse or a path expressed as astr
or aPathLike
object specifying where the file to parse is. -
threshold
: Afloat
between0.0
and1.0
, inclusive, which serves as a cutoff to determine which bounding boxes for the file are returned or a stringauto
(the default) where the service uses a processing method to find the best prediction for each possible bounding box. Only bounding boxes that the model predicts with a confidence score higher than the threshold specified will be returned. A lower value will include more objects but may have overlaps, while a higher value will reduce the number of overlaps but may miss legitimate objects. If you do set the threshold manually, we recommend starting with a value of0.32
. -
use_ocr
: A boolean value that, when set toTrue
, causes DocParse to extract text using an OCR model. This is useful when the text is not directly extractable from the PDF, such as when the text is part of an image or when the text is rotated. When set toFalse
, DocParse extracts embedded text from the input document. Default isFalse
. -
text_extraction_options
: A map with string keys specifying options for text extraction.ocr_text_mode
: A string that specifies the mode to use for OCR text extraction. The default isstandard
, which uses the conventional classical OCR pipeline to process documents. The other option isvision
, which uses a vision model for OCR. Note thatvision
is only available for non-table elements (standard
will be used for table elements) and for PAYG users only.
-
extract_table_structure
: A boolean that, whenTrue
, enables DocParse to extract tables and their structural content using a purpose built table extraction model. If set toFalse
, tables are still identified but not analyzed for their structure; as a result, table cells and their bounding boxes are not included in the response. Default isFalse
. -
table_extraction_options
: A map with string keys specifying options for table extraction. Only applied whenextract_table_structure
isTrue
. Default is empty ({}
)-
include_additional_text
: Boolean. WhenTrue
, DocParse will attempt to enhance the table structure by merging in tokens from text extraction. This can be useful for working with tables that have missing or misaligned text. Default isFalse
-
model_selection
: String. An expression to instruct DocParse how to select the table model to use for extraction. Default is"pixels > 500 -> deformable_detr; table_transformer"
, which means “if the largest dimension of the table is more than 500 pixels, use deformable_detr; otherwise use table_transformer.” To use only deformable_detr or table_transformer, setmodel_selection="deformable_detr"
ormodel_selection="table_transformer"
. Selection expressions are of the formmetric cmp threshold -> model; metric cmp threshold -> model; model
And should be read as a series of
if metric compares to threshold, then use model
statements. Statements are processed from left to right.- Supported models are
table_transformer
, which tends to do well with smaller tables, anddeformable_detr
, which tends to do better with larger tables. - Supported metrics are
pixels
, which corresponds to the maximum dimension of the bounding box containing the table (we find this to be easier to reason about than the total number of pixels which depends on two numbers), andchars
, which corresponds to the total number of characters within the table as determined by the OCR/text extraction step. - Thresholds must be numeric.
- Supported comparison operators are
<, >, <=, >=, ==, !=
.
A statement with no metric, comparison, and threshold can be thought of as a default, where statements after the default will not be processed. If no such ‘unconditional’ statement is included and no conditions match, DocParse will default to table_transformer. Anything after the unconditional statement will not be processed. Examples:
table_transformer
=> always use table transformerpixels > 500 -> deformable_detr; table_transformer
=> if the biggest dimension of the table is greater than 500 pixels use deformable detr. Otherwise use table_transformer.pixels>50->table_transformer; chars<30->deformable_detr;chars>35->table_transformer;pixels>2->deformable_detr;table_transformer;comment
=> if the biggest dimension is more than 50 pixels use table transformer. Else if the total number of chars in the table is less than 30 use deformable_detr. Else if there are mode than 35 chars use table transformer. Else if there are more than 2 pixels in the biggest dimension use deformable detr. Otherwise use table transformer. comment is not processed.
- Supported models are
-
-
extract_images
: A boolean that determines whether to extract images from the document. Default:False
. -
summarize_images
: (PAYG Only) A boolean that, whenTrue
, generates a summary of the images in the document and returns it as thetext_representation
. WhenFalse
, images are not summarized. Default isFalse
. -
selected_pages
: A list specifying individual pages (1-indexed) and page ranges from the document to partition. Single pages are specified as integers and ranges are specified as lists with two integer entries in ascending order. A valid example value for selected_pages is[1, 10, [15, 20]]
which would include pages 1, 10, 15, 16, 17 …, 20.selected_pages
isNone
by default, which results in all pages of the document being parsed. -
chunking_options
: A dictionary of options for specifying chunking behavior. Chunking is only performed when this option is present, and default options are chosen whenchunking_options
is specified as{}
.strategy
: A string specifying the strategy to use to combine and split chunks. Valid values arecontext_rich
andmaximize_within_limit
. The default and recommended chunker iscontext_rich
as{'strategy': 'context_rich'}
.- Behavior of
context_rich
chunker: The goal of this strategy is to add context to evenly-sized chunks. This is most useful for retrieval based GenAI applications. Context_rich chunking combines adjacentsection-header
andtitle
elements into a newsection-header
element. Merges elements into a chunk with its most recentsection-header
. If the chunk would contain too many tokens, then it starts a new chunk copying the section-header to the start of this new chunk and continues. Merges elements on different pages, unlessmerge_across_pages
is set toFalse
. - Behavior of
maximize_within_limit
chunker: The goal of themaximize_within_limit
chunker is to make the chunks as large as possible. Merges elements into the last most recently merged set of elements unless doing so would make its token count exceedmax_tokens
. In that case, it would keep the new element separate and start merging subsequent elements into that one, following the same rule. Merges elements on different pages, unlessmerge_across_pages
is set toFalse
.
- Behavior of
max_tokens
: An integer specifying the cutoff for splitting chunks that are too large. Default value is 512.tokenizer
: A string specifying the tokenizer to use when determining how characters in a chunk are grouped. Valid values areopenai_tokenizer
,character_tokenizer
, andhuggingface_tokenizer
. Defaults toopenai_tokenizer
.tokenizer_options
: A nested dictionary with string keys specifying the options for the chosen tokenizer. Defaults to{'model_name': 'text-embedding-3-small'}
, which works with the OpenAI tokenizer.- Available options for
openai_tokenizer
:model_name
: Accepts all models supported by OpenAI’s tiktoken tokenizer. Default is “text-embedding-3-small”
- Available options for
HuggingFaceTokenizer
:model_name
: Accepts all huggingface tokenizers from the huggingface/tokenizers repo.
character_tokenizer
does not take any options.
- Available options for
merge_across_pages
: Aboolean
that whenTrue
the selected chunker will attempt to merge chunks across page boundaries. Does not apply to themixed_multi_column
merger, which never merges across pages. Defaults toTrue
.
-
output_format
: A string controlling the output representation. Defaults tojson
which yields an array calledelements
which contains the partitioned elements, represented in JSON. If set tomarkdown
the service response will instead include a field calledmarkdown
that contains a string representing the entire document in Markdown format. -
output_label_options
: A dictionary of options to specify which heuristic to apply to enforce certain label outputs. If this option is not specified, no heuristic is applied. The options the dictionary supports are listed below.promote_title
: A boolean that specifies whether to promote an element to title if there’s no title in the output.title_candidate_elements
: A list of strings that are candidate elements to be promoted to title.orientation_correction
: A boolean value that specifies whether to correct the orientation of rotated pages during the preprocessing step.
-
markdown_options
: A dictionary of options to specify what to include in the markdown output.include_pagenum
: A boolean that specifies whether to include page numbers in the markdown output. Default isFalse
.include_headers
: A boolean that specifies whether to include headers in the markdown output. Default isFalse
.include_footers
: A boolean that specifies whether to include footers in the markdown output. Default isFalse
.
-
ssl_verify
: Aboolean
that controls whether the client verifies the SSL certificate of the chosen DocParse server. ssl_verify isTrue
by default, enforcing SSL verification. -
aryn_config
: An ArynConfig object (defined in aryn_sdk/config.py), used for finding an api key. If aryn_api_key is set it will override this. The default ArynConfig looks in the env varARYN_API_KEY
and then in the file ~/.aryn/config.yaml. Default is None (aryn-sdk will look in the aryn_api_key parameter, in your environment variables, and then in ~/.aryn/config.yaml). -
aryn_api_key
: An Aryn API key, provided as a string. You can get one for free at aryn.ai/get-started. Default isNone
(If not provided, the sdk will check for it in the environment variableARYN_API_KEY
or will look in aryn_config as specified above).
webhook_url
: a string url for Aryn to visit when the async task has stopped. POSTs a body like this:{"done": [{"task_id": "aryn:t-47gpd3604e5tz79z1jro5fc"}]}
from aryn_sdk.partition import partition_file_async_submit
with open("my-favorite-pdf.pdf", "rb") as f:
response = partition_file_async_submit(
f,
use_ocr=True,
extract_table_structure=True,
)
# get task id
task_id = response["task_id"]
A dict containing the task_id
of the submitted request.
{
"task_id": "aryn:t-47gpd3604e5tz79z1jro5fc"
}
User errors:
HTTPError: Error:status_code 403
. Reason:"This async action requires you to upgrade your account plan"
- Fix: Please upgrade your account here
HTTPError: Error:status_code 403
. Reason:"No Aryn API Key provided"
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Invalid Aryn API key"
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Expired Aryn API key"
- Fix: Please get a new API key here.
HTTPError: Error:status_code 429
. Reason:"Too many requests"
- Fix: Please try again after some time. Each account is allowed 1000 tasks to run at a time.
Other errors:
HTTPError: Error:status_code 5xx
. Reason:Internal Server Error
partition_file_async_result
Gets the results of an asynchronous partitioning task by task_id
. Meant to be used with partition_file_async_submit
.
task_id
: Required. A string of the task id to poll and attempt to get the result for.aryn_api_key
: An Aryn API key, provided as a string. You can get one for free at aryn.ai/get-started. Default isNone
(If not provided, the sdk will check for it in the environment variableARYN_API_KEY
or will look in aryn_config as specified above).aryn_config
: An ArynConfig object (defined in aryn_sdk/config.py), used for finding an api key. Ifaryn_api_key
is set it will override this. The default ArynConfig looks in the env varARYN_API_KEY
and then in the file~/.aryn/config.yaml
. Default is None (aryn-sdk will look in the aryn_api_key parameter, in your environment variables, and then in~/.aryn/config.yaml
).ssl_verify
: Abool
that controls whether the client verifies the SSL certificate of the chosen DocParse server. ssl_verify isTrue
by default, enforcing SSL verification.
import time
from aryn_sdk.partition import partition_file_async_result
# Poll for the results
while True:
result = partition_file_async_result(task_id)
if result["task_status"] != "pending":
break
time.sleep(1)
A dict like the one in the example below containing “task_status”. When “task_status” is “done”, the returned
dict also contains “result” which contains what would have been returned had partition_file
been called directly. If there is an error with partitioning the file itself, then the “task_status” will still be “done” but the
“result” will contain an “error” field indicating what went wrong.
“task_status” can be “done” or “pending”.
{
"task_status":"done",
"result": ...
}
User errors:
HTTPError: Error:status_code 403
. Reason:"This async action requires you to upgrade your account plan"
- Fix: Please upgrade your account here
HTTPError: Error:status_code 403
. Reason:"No Aryn API Key provided"
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Invalid Aryn API key"
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Expired Aryn API key"
- Fix: Please get a new API key here.
aryn_sdk.partition.partition.PartitionTaskNotFoundError
. Reason:"No such task"
- Fix: Check to make sure the task_id specified is correct.
Other errors:
HTTPError: Error:status_code 5xx
. Reason:Internal Server Error
partition_file_async_cancel
Cancels the task associated with the task_id specified.
task_id
: Required. A string of the task id to cancel.aryn_api_key
: An Aryn API key, provided as a string. You can get one for free at aryn.ai/get-started. Default isNone
(If not provided, the sdk will check for it in the environment variableARYN_API_KEY
or will look in aryn_config as specified above).aryn_config
: An ArynConfig object (defined in aryn_sdk/config.py), used for finding an api key. Ifaryn_api_key
is set it will override this. The default ArynConfig looks in the env varARYN_API_KEY
and then in the file~/.aryn/config.yaml
. Default is None (aryn-sdk will look in the aryn_api_key parameter, in your environment variables, and then in~/.aryn/config.yaml
).ssl_verify
: Abool
that controls whether the client verifies the SSL certificate of the chosen DocParse server. ssl_verify isTrue
by default, enforcing SSL verification.
from aryn_sdk.partition import partition_file_async_submit, partition_file_async_cancel
task_id = partition_file_async_submit(
"path/to/file.pdf",
use_ocr=True,
extract_table_structure=True,
extract_images=True,
)["task_id"]
partition_file_async_cancel(task_id)
No return value. Asynchronous tasks may only be successfully cancelled once. Once a task has been
cancelled, any partition_file_async_result
calls using that task’s id will throw an exception.
User errors:
HTTPError: Error:status_code 403
. Reason:"This async action requires you to upgrade your account plan"
- Fix: Please upgrade your account here
HTTPError: Error:status_code 403
. Reason:"No Aryn API Key provided"
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Invalid Aryn API key"
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Expired Aryn API key"
- Fix: Please get a new API key here.
aryn_sdk.partition.partition.PartitionTaskNotFoundError
. Reason:"No such task"
- Fix: Check to make sure the task_id specified is correct.
Other errors:
HTTPError: Error:status_code 5xx
. Reason:Internal Server Error
partition_file_async_list
Lists all the partition_file tasks still running in your account.
aryn_api_key
: An Aryn API key, provided as a string. You can get one for free at aryn.ai/get-started. Default isNone
(If not provided, the sdk will check for it in the environment variableARYN_API_KEY
or will look in aryn_config as specified above).aryn_config
: An ArynConfig object (defined in aryn_sdk/config.py), used for finding an api key. Ifaryn_api_key
is set it will override this. The default ArynConfig looks in the env varARYN_API_KEY
and then in the file~/.aryn/config.yaml
. Default is None (aryn-sdk will look in the aryn_api_key parameter, in your environment variables, and then in~/.aryn/config.yaml
).ssl_verify
: Abool
that controls whether the client verifies the SSL certificate of the chosen DocParse server. ssl_verify isTrue
by default, enforcing SSL verification.
from aryn_sdk.partition import partition_file_async_list
l = partition_file_async_list()
A dict like the one below which maps task_ids to a dict containing details of the respective task.
{
"aryn:t-sc0v0lglkauo774pioflp4l": {
"task_status": "pending"
},
"aryn:t-b9xp7ny0eejvqvbazjhg8rn": {
"task_status": "pending"
}
}
User errors:
HTTPError: Error:status_code 403
. Reason:"This async action requires you to upgrade your account plan"
- Fix: Please upgrade your account here
HTTPError: Error:status_code 403
. Reason:"No Aryn API Key provided"
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide an API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Invalid Aryn API key"
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
ARYN_API_KEY
.
- Fix: Please provide a valid API key either as a parameter or specify it in the environment variable
HTTPError: Error:status_code 403
. Reason:"Expired Aryn API key"
- Fix: Please get a new API key here.
Other errors:
HTTPError: Error:status_code 5xx
. Reason:Internal Server Error
Helper Functions
convert_image_element
Convert an image element to a more usable format. If no format is specified, create a PIL Image object. If a format is specified, output the bytes of the image in that format. If b64encode
is set to True
, base64-encode the bytes and return them as a string
.
elem
: Required. An image element from theelements
field of apartition_file
response.format
: Astring
specifying the format to output bytes to. Default isPIL
.b64encode
: Aboolean
that when set to True enables base64-encoding of the output bytes of this function. Format cannot bePIL
when this option isTrue
. Default isFalse
.
from aryn_sdk.partition import partition_file, convert_image_element
with open("my-favorite-pdf.pdf", "rb") as f:
data = partition_file(
f,
extract_images=True
)
image_elts = [e for e in data['elements'] if e['type'] == 'Image']
pil_img = convert_image_element(image_elts[0])
jpg_bytes = convert_image_element(image_elts[1], format='JPEG')
png_str = convert_image_element(image_elts[2], format="PNG", b64encode=True)
Either a PIL Image
object, bytes of an image, or a base64-encoded image as a str
.
ValueError
- “b64encode was True but format was PIL. Cannot b64-encode a PIL Image”.- Fix: If you’re calling the function with a PIL image, please set b64encode to False.
draw_with_boxes
Create a list of images from the provided PDF, one for each page, with bounding boxes detected by the partitioner drawn on.
pdf_file
: Required. A PDF file opened in binary mode or a path to a PDF file expressed as astring
or aPathLike
object upon which to draw. -partitioning_data
: Required. The output frompartition_file
.draw_table_cells
: A boolean that whenTrue
, makes the function draw individually detected cells of tables. WhenFalse
, the bounding boxes of table cells are not drawn but the outer bounding boxes of tables and the bounding boxes of all other elements are still drawn. Default is False.
from aryn_sdk.partition import partition_file, draw_with_boxes
with open("my-favorite-pdf.pdf", "rb") as f:
data = partition_file(
f,
aryn_api_key="MY-ARYN-API-KEY",
use_ocr=True,
extract_table_structure=True,
extract_images=True
)
pages = draw_with_boxes("my-favorite-pdf.pdf", data, draw_table_cells=True)
A list of images of pages of the PDF, each with bounding boxes drawn on.
- Will throw an exception if the function is not called with a PDF file.
table_elem_to_dataframe
Create a pandas
DataFrame representing the tabular data inside the provided table element. If the element is not of type table
or doesn’t contain any table data, return None
instead.
elem
: Required. An element from the ‘elements’ field of apartition_file
response.
from aryn_sdk.partition import partition_file, table_elem_to_dataframe
with open("partition-me.pdf", "rb") as f:
data = partition_file(
f,
use_ocr=True,
extract_table_structure=True,
extract_images=True
)
# Find the first table and convert it to a dataframe
df = None
for element in data['elements']:
if element['type'] == 'table':
df = table_elem_to_dataframe(element)
break
A Pandas DataFrame representing the tabular data inside the provided table element. If the element is not of type ‘table’ or doesn’t contain any table data, returns None instead.
tables_to_pandas
For every table element in the provided partitioning response, create a pandas DataFrame representing the tabular data. Return a list containing all the elements, with tables paired with their corresponding DataFrames.
data
: A response frompartition_file
from aryn_sdk.partition import partition_file, tables_to_pandas
with open("my-favorite-pdf.pdf", "rb") as f:
data = partition_file(
f,
aryn_api_key="MY-ARYN-API-KEY",
use_ocr=True,
extract_table_structure=True,
extract_images=True
)
elts_and_dataframes = tables_to_pandas(data)
A list of tuples, where each tuple contains an element from the ‘elements’ field of a partition_file
response and a Pandas DataFrame representing the tabular data inside the provided table element. If the element is not of type ‘table’ or doesn’t contain any table data, the DataFrame will be None
.
Was this page helpful?