Créer un fichier XBRL à l'aide de Python

Un document XBRL est un ensemble de faits qui, ensemble, constituent un rapport d’activité. Nous pouvons facilement créer un document d’instance XBRL par programmation et ajouter des objets ou des éléments tels qu’une référence de schéma, un contexte, une unité, des éléments, etc. Dans cet article, nous apprendrons comment créer un fichier XBRL à l’aide de Python.

Les sujets suivants seront traités dans cet article :

  1. Qu’est-ce que XBRL
  2. Bibliothèque Python Finance pour créer des fichiers XBRL
  3. Créer un fichier XBRL
  4. Ajouter une référence de schéma à XBRL
  5. Ajouter un contexte dans XBRL
  6. Créer une unité en XBRL
  7. Ajouter un élément de fait dans XBRL
  8. Ajouter des liens de note de bas de page à XBRL
  9. Insérer la référence du rôle dans XBRL
  10. Ajouter une référence de rôle d’arc à XBRL

Qu’est-ce que XBRL

XBRL signifie eXtensible Business Reporting Language, un langage de balisage basé sur XML. Il est utilisé pour les rapports commerciaux standardisés sur les performances financières d’une entreprise. Il fournit un moyen de communiquer et d’échanger des informations commerciales entre les systèmes d’entreprise.

Bibliothèque Python Finance pour créer des fichiers XBRL

Pour créer un fichier XBRL ou un document d’instance, nous utiliserons l’API Aspose.Finance for Python. Il permet de créer des instances XBRL, d’analyser et de valider les fichiers XBRL ou iXBRL.

L’API fournit la classe XbrlDocument qui représente un document XBRL contenant une ou plusieurs instances XBRL. Une instance XBRL est un fragment XML, l’élément racine ayant une balise XBRL. La classe XbrlInstance fournit diverses méthodes et propriétés pour travailler avec les instances XBRL. La méthode save() de la classe XbrlDocument crée et enregistre le fichier XBRL sur le disque. Veuillez en savoir plus sur les autres classes pour travailler avec des objets XBRL dans API reference.

Veuillez soit télécharger le package ou installer l’API à partir de PyPI en utilisant la commande pip suivante dans la console :

pip install aspose-finance

Créer un document d’instance XBRL en Python

Nous pouvons facilement créer un document d’instance XBRL à partir de rien en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ensuite, accédez à la collection d’instances de l’objet XbrlDocument dans l’objet xbrlinstances.
  3. Après cela, ajoutez une nouvelle instance XBRL à l’aide de la méthode xbrlinstances.add().
  4. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string). Il prend le chemin du fichier de sortie comme argument.

L’exemple de code suivant montre comment créer une instance XBRL à l’aide de Python.

# This code example demonstrates how to create an XBRL document
from aspose.finance.xbrl import XbrlDocument

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Save the file
xbrlDoc.save(outputFile)

Une fois que nous avons créé l’instance de XBRL, nous pouvons ajouter la référence de schéma, le contexte, les unités, les éléments, les liens de note de bas de page, les références de rôle et les références de rôle d’arc dans l’instance XBRL nouvellement créée.

Ajouter une référence de schéma à XBRL à l’aide de Python

Nous pouvons ajouter une référence de schéma dans un document d’instance XBRL en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ensuite, récupérez la collection d’instances de l’objet XbrlDocument dans l’objet xbrlinstances.
  3. Ensuite, ajoutez une nouvelle instance XBRL à l’aide de la méthode xbrlinstances.add().
  4. Ensuite, récupérez la collection de référence de schéma de l’objet XbrlInstance dans l’objet schemarefs.
  5. Après cela, ajoutez une nouvelle référence de schéma à l’aide de la méthode schemarefs.add() avec le fichier de schéma d’entrée.
  6. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string).

L’exemple de code suivant montre comment créer un document d’instance XBRL et ajouter une référence de schéma dans Python.

# This code example demonstrates how to create an XBRL document and add schema reference object
from aspose.finance.xbrl import XbrlDocument

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")

# Save the document
xbrlDoc.save(outputFile)

Ajouter du contexte dans XBRL à l’aide de Python

Nous pouvons ajouter un contexte à un document d’instance XBRL en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ensuite, ajoutez une nouvelle instance XBRL aux instances xbrl de l’objet XbrlDocument.
  3. Ensuite, créez une instance de la classe ContextPeriod avec les dates de début et de fin.
  4. Ensuite, créez un objet ContextEntity avec schéma et identifiant.
  5. Ensuite, créez une instance de la classe Context avec les ContextPeriod et ContextEntity définis.
  6. Après cela, ajoutez l’objet Context à la collection contexts.
  7. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string).

L’exemple de code suivant montre comment créer un document d’instance XBRL et ajouter un objet de contexte dans Python.

# This code example demonstrates how to create an XBRL document and add Context object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Add context period
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))

# Add context entity
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")

# Define and add context
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Save the document
xbrlDoc.save(outputFile)

Créer des unités en XBRL à l’aide de Python

Les unités en XBRL mesurent les éléments numériques. Nous pouvons ajouter une unité dans un document d’instance XBRL en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ensuite, ajoutez une nouvelle instance XBRL aux instances xbrl de l’objet XbrlDocument.
  3. Ensuite, créez une instance de la classe Unit avec UnitType comme MEASURE.
  4. Ensuite, ajoutez QualifiedName à la collection measurequalifiednames.
  5. Après cela, ajoutez l’unité à la collection d’unités.
  6. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string).

L’exemple de code suivant montre comment créer un fichier XBRL et ajouter un objet unité en Python.

# This code example demonstrates how to create an XBRL document and add Unit object
from aspose.finance.xbrl import XbrlDocument,Unit,QualifiedName,UnitType

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Add Unit
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)

# Save the document
xbrlDoc.save(outputFile)

Ajouter un élément de fait dans XBRL à l’aide de Python

Les faits en XBRL sont définis à l’aide d’éléments d’élément. Un élément en XBRL contient la valeur du fait simple et une référence au contexte pour interpréter correctement ce fait. Nous pouvons ajouter un élément dans un document d’instance XBRL en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ajoutez une nouvelle instance XBRL aux instances xbrl de l’objet XbrlDocument.
  3. Ajoutez une nouvelle référence de schéma aux références de schéma de l’objet XbrlInstance.
  4. Obtenez SchemaRef par son index à partir de schemarefs.
  5. Initialisez l’instance de Context et ajoutez-la à la collection de contextes.
  6. Définissez une instance Unit et ajoutez-la à la collection d’unités.
  7. Créez une instance de classe Concept à l’aide de la méthode getconceptbyname().
  8. Créez une instance de la classe Item avec l’objet Concept comme argument.
  9. Définissez les propriétés des éléments telles que contextref, unitref, precision, value, etc.
  10. Après cela, ajoutez l’élément à la collection de faits.
  11. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string).

L’exemple de code suivant montre comment ajouter un fait en tant qu’élément d’élément dans un document d’instance XBRL à l’aide de Python.

# This code example demonstrates how to create an XBRL document and add Item object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,Unit,UnitType,QualifiedName,Item

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Add context
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Add unit
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)

# Add item
fixedAssetsConcept = schema.get_concept_by_name("fixedAssets")
if fixedAssetsConcept is not None:
    item = Item(fixedAssetsConcept)
    item.context_ref = context
    item.unit_ref = unit
    item.precision = 4
    item.value = "1444"
    xbrlInstance.facts.append(item)
    
# Save the document
xbrlDoc.save(outputFile)

Nous pouvons ajouter un lien de note de bas de page dans un document d’instance XBRL en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ajoutez une nouvelle instance XBRL aux instances xbrl de l’objet XbrlDocument.
  3. Ajoutez une nouvelle référence de schéma aux références de schéma de l’objet XbrlInstance.
  4. Obtenez SchemaRef par son index à partir de schemarefs.
  5. Initialisez l’instance de Context et ajoutez-la à la collection de contextes.
  6. Définissez une instance de classe Footnote et définissez son étiquette et son texte.
  7. Initialisez le type Locator à l’aide de l’instance de classe Loc.
  8. Définissez l’objet FootnoteArc avec l’étiquette Locator et l’étiquette Footnote comme arguments.
  9. Créez une instance de la classe FootnoteLink.
  10. Ajoutez Footnote, Locator et FootnoteArc aux collections pertinentes.
  11. Après cela, ajoutez FootnoteLink à la collection footnotelinks.
  12. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string).

L’exemple de code suivant montre comment ajouter un lien de note de bas de page dans un document d’instance XBRL à l’aide de Python.

# This code example demonstrates how to create an XBRL document and add Footnote Link object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,FootnoteLink,Footnote,Loc,FootnoteArc

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Add context
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Add Footnote
footnote = Footnote("footnote1")
footnote.text = "Including the effects of the merger."

# Add Location
loc = Loc("#cd1", "fact1")

# Define Footnote arc
footnoteArc = FootnoteArc(loc.label, footnote.label)

# Add FootnoteLink
footnoteLink = FootnoteLink()
footnoteLink.footnotes.append(footnote)
footnoteLink.locators.append(loc)
footnoteLink.footnote_arcs.append(footnoteArc)
xbrlInstance.footnote_links.append(footnoteLink)
    
# Save the document
xbrlDoc.save(outputFile)

Insérer une référence de rôle dans XBRL à l’aide de Python

Nous pouvons ajouter une référence de rôle dans un document d’instance XBRL en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ajoutez une nouvelle instance XBRL aux instances xbrl de l’objet XbrlDocument.
  3. Ajoutez une nouvelle référence de schéma aux références de schéma de l’objet XbrlInstance.
  4. Obtenez SchemaRef par son index à partir de schemarefs.
  5. Ensuite, récupérez le RoleType à partir de la méthode getroletypebyuri().
  6. Ensuite, créez une instance de la classe RoleReference avec l’objet RoleType comme argument.
  7. Après cela, ajoutez le RoleReference à la collection rolereferences.
  8. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string).

L’exemple de code suivant montre comment ajouter une référence de rôle dans un document d’instance XBRL à l’aide de Python.

# This code example demonstrates how to create an XBRL document and add Role reference object
from aspose.finance.xbrl import XbrlDocument,RoleReference

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Get role type
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# Add role reference
if roleType is not None:
    roleReference = RoleReference(roleType)
    xbrlInstance.role_references.append(roleReference)

# Save the document
xbrlDoc.save(outputFile)

Ajouter une référence de rôle Arc à XBRL en Python

Nous pouvons ajouter une référence de rôle Arc dans un document d’instance XBRL en suivant les étapes ci-dessous :

  1. Tout d’abord, créez une instance de la classe XbrlDocument.
  2. Ajoutez une nouvelle instance XBRL aux instances xbrl de l’objet XbrlDocument.
  3. Ajoutez une nouvelle référence de schéma aux références de schéma de l’objet XbrlInstance.
  4. Obtenez SchemaRef par son index à partir de schemarefs.
  5. Ensuite, récupérez le RoleType à partir de la méthode getarcroletypebyuri().
  6. Ensuite, créez une instance de la classe ArcroleReference avec l’objet RoleType comme argument.
  7. Après cela, ajoutez l’ArcroleReference à la collection arcrolereferences.
  8. Enfin, enregistrez le fichier XBRL à l’aide de la méthode save(string).

L’exemple de code suivant montre comment ajouter une référence de rôle d’arc dans un document d’instance XBRL à l’aide de Python.

# This code example demonstrates how to create an XBRL document and add Arc Role reference object
from aspose.finance.xbrl import XbrlDocument,ArcroleReference

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Get role type
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# Add role reference
if roleType is not None:
    arcroleReference = ArcroleReference(roleType)
    xbrlInstance.arcrole_references.append(arcroleReference)

# Save the document
xbrlDoc.save(outputFile)

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitation d’évaluation.

Conclusion

Dans cet article, nous avons appris à créer un document XBRL à l’aide de Python. Nous avons également vu comment ajouter divers objets XBRL au document d’instance XBRL créé par programmation. En outre, vous pouvez en savoir plus sur l’API Aspose.Finance pour Python en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum.

Voir également