.. _access-packaging-metadata: ================================================= Accessing Briefcase packaging metadata at runtime ================================================= When Briefcase installs your app, it adds a `PEP566 `__ metadata file containing information about your app, and Briefcase itself. You can retrieve this information at runtime using the `Python builtin library 'importlib.metadata' `__. ``importlib.metadata`` was added in Python 3.8; however, it has been backported and published on PyPI as `'importlib_metadata' `__ for older versions of Python. To access application metadata at runtime, you can use the following code:: import sys try: from importlib import metadata as importlib_metadata except ImportError: # Backwards compatibility - importlib.metadata was added in Python 3.8 import importlib_metadata # Find the name of the module that was used to start the app app_module = sys.modules['__main__'].__package__ # Retrieve the app's metadata metadata = importlib_metadata.metadata(app_module) The ``metadata`` returned by this code will be a dictionary-like object that contains the following identifying keys: * **Metadata-Version** - The syntax version of the metadata file itself (as defined in `PEP566 `__). * **Briefcase-Version** - The version of Briefcase used to package the app. The existence of this key in app metadata can be used to identify if your application code is running in a Briefcase container; it will only exist if the app has been packaged by Briefcase. It will also have the following keys, derived from your application's ``pyproject.toml`` configuration: * **Name** - ``app_name`` * **Formal-Name** - ``formal_name`` * **App-ID** - ``bundle`` and ``app_name``, joined with a ``.`` * **Version** - ``version`` * **Summary** - ``description`` The metadata may also contain the following keys, if they have been defined in your app's ``pyproject.toml`` configuration: * **Home-page** - ``url`` * **Author** - ``author`` * **Author-email** - ``author_email`` For example, the metadata for the app constructed by the `BeeWare Tutorial `_ would contain:: Metadata-Version: 2.1 Briefcase-Version: 0.3.1 Name: helloworld Formal-Name: Hello World App-ID: com.example.helloworld Version: 0.0.1 Home-page: https://example.com/helloworld Author: Jane Developer Author-email: jane@example.com Summary: My first application