Package: aempsconn
AEMPSconnLibrary designed for interacting with the CIMA REST API (AEMPS).More information related to the official REST API can be foundhere.Note: AEMPSconn is developed to make use of it withCIMA REST API v1.23.InstallationUse the package managerpipto install aempsconn.pipinstallaempsconnCustom LoggerThe use of theloggerin the libraryis not mandatory.Acustom loggerhas been created in order to offer the possibility to use it in an integrated way with the library and it allows you to set the logging level.However, as theloggerargument requires a Logger type, it is fully customizable so that the programmer can set it according to his own preferences.To not use any logger, simply leave it blank.Building queriesIt has developed a easy-use query builder for the most important endpoints:/medicamento&/medicamentos.Each endpoint has its own custom filters so you can find and add them to the request by:importaempsconnaemps=aempsconn.Orchestrate(logger=aempsconn.CustomLogger(level=50))filter_med=aemps.filter_medicamento.<FILTER_CONDITION_MED>.equals(value=<VALUE>)filter_meds=aemps.filter_medicamentos.<FILTER_CONDITION_MEDS>.equals(value=<VALUE>)This query builder supports as many conditions/filters as you want.Be noted that the the first endpoint (/medicamento)will only make use of the last condition set, since it only admits a single condition.Handling errorsThe library comes with custom exceptions for error handling.This exceptions are the following:aempsconn.errors.HTTPFailureCustom exception related to the HTTP requests.aempsconn.errors.JSONDecodeFailureCustom exception related to JSON decode.aempsconn.errors.JSONKeyFailureCustom exception related to JSON dict's keys.aempsconn.errors.ProxyFailureCustom exception related to the proxy configuration.aempsconn.errors.RequestFailureCustom exception related to the Python3 request module.aempsconn.errors.TimeoutFailureCustom exception related to the timeout.aempsconn.errors.UnhandledErrorCustom exception related to unhandled exceptions.Usageimportaempsconn# Initialize all the modules with the same configuration.aemps=aempsconn.Orchestrate(logger=aempsconn.CustomLogger(level=50))# or initialize all the modules without the Logger or any other custom settingsaemps=aempsconn.Orchestrate()# Create a filter needed for the wanted request.# This filter is custom for "/medicamento" endpoint.filter1=aemps.filter_medicamento.num_registro.equals("59494")# Download the med that satisfies the previous custom filter.med=aemps.medicamento.get(filter=filter1)# If med is not null prints the name.ifmedisnotNone:print(med.nombre)# Create a new filter needed for the wanted request.# This filter is custom for "/medicamentos" endpoint.filter2=(aemps.filter_medicamentos.nombre.equals("paraceta*").comercializado.equals(True).laboratorio.equals("cinfa").receta.equals(True))# Download all the meds that satisfy the previous custom filter.meds=aemps.medicamentos.get(filter=filter2)# If meds are not null iterates and prints the names.ifmedsisnotNone:formedinmeds:print(med.nombre)ContributingPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.Please make sure to update tests as appropriate.DisclaimerThe use of Spanish words or descriptionsis intendedto facilitate consistency between the official CIMA API and this library, so that the programmer does not hesitate with the name of each of the filters or data received.This library is not official.