heliport.pid_registration package
Submodules
heliport.pid_registration.apps module
Django app configuration module for the heliport.pid_registration app.
heliport.pid_registration.conf module
App settings for the heliport.pid_registration app.
- class heliport.pid_registration.conf.HeliportPidRegistrationAppConf(**kwargs)
Bases:
AppConfSettings of the
heliport.pid_registrationapp.All settings in this class can be overwritten in settings.py
- API_URL = 'https://handle.hzdr.de/api/handles'
The API URL of your local Handle.Net server.
- CERTIFICATE_PATH = '/etc/ssl/certs/heliport_handle_admin.crt'
The path to the certificate file for authentication.
- PREFIX = '20.500.12865'
The prefix used by your local Handle.Net server.
- PRIVATE_KEY_PATH = '/etc/ssl/private/heliport_handle_admin.key'
The path to the private key file for authentication.
- REGISTER_HANDLES = False
Enable Handle registration
- SERVER_URL = 'https://handle.hzdr.de'
The URL to your local Handle.Net server.
heliport.pid_registration.handle_net module
PID registration interface for handle.net servers.
- class heliport.pid_registration.handle_net.HandleNetRegistry
Bases:
objectClass for PID registration on Handle.Net servers.
- full_url(identifier: str) str
Return the full URL for
identifier.identifieris assumed to be valid and containing the server prefix. The URL is simply constructed and returned with no request to the server being sent.
- mint_identifier(name: str, target: str) str
Mint an identifier in the Handle registry.
Try to obtain an ID with the name
nameand make it point totarget. Return the ID that was actually minted, including the prefix.
- class heliport.pid_registration.handle_net.HandleServerSession
Bases:
SessionCustom
requests.Sessionsubclass for handle server interaction.- request(method, url, **kwargs) Response
Handle request, preventing sending the certificate to the wrong server.
- heliport.pid_registration.handle_net.register_handle(digital_object: DigitalObject) str | None
Mint a new handle for the given digital object.
The newly minted handle is returned as a full URL, or
Noneif anything goes wrong. If the digital object already has a handle, this handle is returned and no new handle is minted. If the digital object has no primary key (i.e. it was not saved in the database), or no category,Noneis returned.The handle is also stored in
DigitalObjectIdentifierusing thehdlscheme.
heliport.pid_registration.interface module
HELIPORT interface for the PID registration app.
heliport.pid_registration.signal_handlers module
Signal handlers for the app.
- heliport.pid_registration.signal_handlers.register_pid_handler(sender, instance: DigitalObject, created: bool, using, update_fields, **kwargs)
Post-save handler for digital object PID registration.
If the saved object was newly created, does not yet have any persistent identifier, and handle registration is enabled, a handle is registered for the digital object.
Currently, only an implementation for Handle.Net PIDs exists. If more implementations are added to the code base, this function may change in order to perform registration with other (and potentially multiple) PID providers.
heliport.pid_registration.tests module
Tests for the heliport.pid_registration app.
- class heliport.pid_registration.tests.HandleNetTest(methodName='runTest')
Bases:
TestCaseTests for
handle_netmodule.- test_handle_server_session()
Disallow request to wrong server.
- test_mint_identifier()
Registration of a new handle.
- test_register_existing_handle()
Trying to register a handle that already exists.
Module contents
PID registration for digital objects.