# Micro GC Fusion API
Micro GC Fusion API is a python module created from the INFICON Inc. Micro GC Fusion API Guide. Using this module allows users to build their program faster rather than interpereting the API guide.
## Installation
Use the package manager [pip](https://pypi.org/project/MicroGCFusionAPI/#description) to install Micro GC Fusion API.
```bash
pip install MicroGCFusionAPI
```
Use the package manager to also update to the latest version of Micro-GC-Fusion-API
```bash
pip install --upgrade MicroGCFusionAPI
```
## Usage
```python
from MicroGCFusionAPI import Fusion
#Enter Micro GC Fusion IP Address (Ex: 10.10.0.1)
f = Fusion('10.10.0.1')
#Return connected status (True / False):
f.connected()
#Return instrument status ( {'sequence': 'public:sequence-not-loaded', 'system': 'public:ready'})
status = f.status()
sequenceStatus = status['sequence']
systemStatus = status['system']
'''
Avalible Status Options:
System States:
----------------------------------
public:bakeout
public:error-carrier-gas-pressure
public:error-method-load-failed
public:error-running-too-long
public:loading-method
public:manual-purge
public:method-running
public:preparing
public:ready
public:shutdown
public:standby
public:waiting-for-modules
Sequence States:
---------------------------------
public:error-event-sequencer-down
public:sequence-loaded
public:sequence-not-loaded
public:sequence-running
Possible Error States
---------------------------------
public:error-moduleA
public:error-moduleB
public:error-moduleC
public:error-moduleD
public:error-system-uninitialized
public:uninitialized
'''
################################################## Info #############################################################
#Subclasss of Fusion that provides information about the system
#Return the system serial number (return: '70000001')
f.info.serialNumber()
#Retrun the system part number (return: 'F08504W02W02')
f.info.partNumber()
#Return the system host name (return: 'NatGas2')
f.info.hostname()
#Return the system storage limit status (return: 'ok', 'approaching', 'exceeded')
f.info.storageLimit()
################################################## Network ##########################################################
#Subclass of Fusion that provides networking information
#Return the networking information in JSON format:
f.network.info()
#Return Example:
'''
{'IPAddress': ['10.215.38.131'],
'date': 1725973498712,
'dhcpAddress': '10.215.38.131',
'hostname': 'NatGas2',
'macAddress': {'eth0': 'XX:XX:XX:XX:XX:XX', 'wlan0': 'XX:XX:XX:XX:XX:XX'},
'staticIP': {'address': '10.10.1.12',
'enabled': False,
'gateway': '',
'subnet': '255.255.0.0'},
'wifiEnable': True,
'wifiPassword': 'inficongc'}
'''
#Enable / Disable the wifi using the toggle wifi command.
#Returns the current state of the system after toggle (return: True / False)
f.network.toggleWifi()
#Get the current Wifi password of the system (return: 'inficongc')
f.network.getWifiPassword()
#Set the wifi password of the system:
f.network.setWifiPassword('NewWifiPassword')
#Set the hostname of the system:
f.network.setHostname('NewHostName')
#Sync the system time to local computer:
f.network.syncTime()
################################################## Control ##########################################################
#Subclass of Fusion that provides control over the system
#Run the system when ready:
f.control.run()
#Run with run name and tags (input options: Name, [tags])
f.control.runWithName('SampleName',['tagOne','tagTwo','tagThree'])
#Stop a sequence in progress (the current run will run through completion)
f.control.stopSequence()
#Abort a current run and/or sequence immediately. Note this may cause future chromatography issues and is not recommended.
f.control.abortCurrentRun()
#Load a specific method using the method name:
f.control.loadMethod('nameOfMethod')
#Load a specifi sequence using the sequence name:
f.control.loadSequence('nameOfSequence')
#Reboot the system immediately
f.control.reboot()
#Start a bakeout procedure specified in minutes. Default is 30 minutes
f.control.bakeout(minutes=120)
#Send a get request with any string after ip address. Ex: https//10.215.38.3{string} where {string} = /v1/lastRun (return: JSON object)
f.control.getStringCommand('string')
################################################## Methods ##########################################################
#Subclass of Fusion that provides access to the user methods on the system
#Retrun all of the methods on the system in JSON structure, listed by method name
f.methods.getAll()
#Return a specific method by providing a method name
f.methods.get('nameOfMethod')
#Create a default method based on the system part number. These methods were created by INFICON GC experts and are a better starting point (Returns: name of new method)
f.methods.methodByPN()
################################################## Module ###########################################################
#Subclass of Fusion that provides access to individual module information
#This subclass requires the user to know the system configuration and which modules are installed in the system
#Return serial number of each module in the system (Ex: 4 module system)
f.moduleA.serialNumber()
f.moduleB.serialNumber()
f.moduleC.serialNumber()
f.moduleD.serialnumber()
#The rest of the examples will use "moduleA" as an example
#Return the module information in a dictionary, (return Information: column type, injector, detector)
f.moduleA.info()
#Return Example:
'''
{'column': 'Rt-Molsieve 5A, 0.25mm (10m) [Rt-Q-BOND (3m)]',
'detector': 'TCD2',
'injector': 'Backflush 1.0 uL',
'reserved': '0'}
'''
#Return module serial number (return: '70094396')
f.moduleA.serialNumber()
#Return module part number (return: 'W02')
f.moduleA.partNumber()
#Return state of all module heaters in a dictionary
f.moduleA.heaters()
#Return Example:
'''
{'columnHeater': 59.98,
'externalColumnHeater': 60.0,
'flowManifoldHeater': 55.07,
'injectorDieHeater': 89.7,
'tcdHeater': 61.13}
'''
#Return current pressure(s) of the module
f.moduleA.pressures()
#Retrun Example:
'''
{'carrier': 20.0,
'inject': 0}
'''
#Return the raw TCD signal from the module (return: -188591.42065048218)
f.moduleA.tcdSignal()
#Return the current valve state (0 = inactive, 0.5 = active)
f.moduleA.valves()
#Return Ex:
'''
{'backflush': 0,
'forflush': 0,
'inject': 0,
'sample': 0.5,
'switch': 0}
'''
#Return fan duty cycle (1 = 100%)
f.moduleA.fan()
################################################## Databrowser ######################################################
#Subclass of Fusion that provides access to the databrowser database.
#Return the full datafile of the last run in JSON format. Note, these datafiles have a significant amount of data in them.
f.data.lastRun()
#Return the run ID (UUID) of the last run. This can be used to check if a new run is available ('ea9d0e98-c254-4481-a1aa-834ab2b8e38b')
f.data.lastRunID()
#Return the full datafiles of the last "X" number of runs. Note, a large X valves will take a significant amount of time to process.
f.data.getLastX(5) #grabs the last 5 runs in a list []
#Return datafile based on the run ID (uuid)
f.data.getData("e4aca6cd-e2a0-4148-bad3-bdbdefec4ee9")
#Return based on the query text from the API guide:
f.data.queryText('text=foo&sortByData=DESC') #Return a list of run IDs that contain the text "foo" sort that list in decending order
#Query Text Options:
'''
Query parameter Type Description
id String A string containing the id or pipe(|) delmited ids a document can contain
text String A string containing the text or pipe(|) delmited names a document can contain
date String ISO8601 string containing the date or pipe(|) delmited dates for when a run was executed.
startDate String ISO8601 string for runs after this date.
endDate String ISO8601 string for runs before this date.
startDateInclusive boolean rue if the start date is inclusive (default), false otherwise.
endDateInclusive boolean True if the end date is inclusive (default), false otherwise.
limit Integer The number of rows to be returned.
offset Integer The offset within the results set.
sortByDatum String The name of the field to sort on. Only one supported currently.
datumSortOrder String ASC or DESC to indicate the results should be sorted by a datum element in the document in that order.
sortByDate String ASC or DESC to indicate the results should be sorted by date in that order. (Default:DESC)
allData boolean Flag for whether or not to return all the data. Default: false.
includeData String The data field name to include in the return.
countOnly boolean Flag for whether or not to data, or the total number of rows in the data set. Default: false.
noId boolean Flag for whether or not to return $id in run. Default: false
updatedSince String ISO8601 string for runs updated after this date.
'''
#Replace a data file to the database by providing the correct datafile JSON structure. Typically this is done by pulling data, modifying then returning
runData = f.data.lastRun() #Pull the datafile of the last run
runData['annotations']['name'] = 'newSampleName' #Change the sample name by modifying the annotations/name section of the datafile
f.data.replaceData(runData) #Return the datafile to the databrowser with the updated sample name
#Add a new datafile to the databrowser, the run ID (uuid) cannot already be in the the databrowser or the upload will not work properly.
f.data.addNewData(datafileInJsonStructure)
#Reprocess a specific datafile by sending the run ID (uuid)
f.data.reprocess("e4aca6cd-e2a0-4148-bad3-bdbdefec4ee9")
#Reprocess several data files by providing a list of run IDs
runIDList = [
"e4aca6cd-e2a0-4148-bad3-bdbdefec4ee9",
"24b5d865-8ac9-4d68-99dc-719772ceb6c2",
"fa230e0e-5927-482a-a214-a696facc4bc2",
"3e9159d9-bcf8-4050-967b-1d18661bed65"
]
f.data.reprocessMany(runIDList)
#Return a simplier version of the last run data file
f.data.compoundResults()
#Return Example:
'''
'''
################################################## Valco ############################################################
#Subclass of the Fusion enabling status and control of a connected Valco Stream Selector valve
#Return a True / False if the valve is currently connected
f.valco.enabled()
#Return information about the valco valve in a JSON structure
f.valco.info()
#Return Example:
'''
{'dataRate': 9600,
'mode': 3,
'position': 1,
'positions': [1, 2, 3, 4]}
'''
#Return the current position of the valve (return: 4)
f.valco.getPos()
#Set the position of the valve changing it
f.valco.setPos(3) # change the valve postion to postion 3
################################################## Notifications ####################################################
#Subclass of the Fusion enabling messaging through notification system within the Micro GC Fusion GUI.
#Send Info message (Blue notification appears in bottom right of the GUI, will disappear after a few seconds)
f.notifications.info('this is an info message')
#Send Warning message (Yellow notification appears in the bottom right of the GUI, will stay until the GUI user removes it)
f.notifications.error("this is a warning message")
#Send Error message (Red notification appears in the bottom right of the GUI, will stay until the GUI user removes it)
f.notifications.error('this is an error message')
```
## Contributing
Reach out to us via email with questions: fusion.syr@inficon.com
## License
[MIT](https://choosealicense.com/licenses/mit/)
## Changelog
### Version 0.0.7
-Add bakeout command
-Add getStringCommand
-Add preset method
-Clear all method preset option
### Version 0.0.6
-Readme typo fix
-MethodByPN bug fix & installation issue
-Removed Manifest.in from package
### Version 0.0.5
-Homepage update and bug fixes
### Version 0.0.4
-Error handling for invalid ip address
Raw data
{
"_id": null,
"home_page": null,
"name": "MicroGCFusionAPI",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "chromatography, GC, inficon, gas chromatography, micro, Fusion, MicroGC, API, MicroGCFusionAPI, Micro GC Fusion",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/f6/56/f1b92f1c077ae0b2a7c55d9af234c69ba731427dd4dcd60516e3a3e056a5/microgcfusionapi-0.0.7.tar.gz",
"platform": null,
"description": "# Micro GC Fusion API\r\n\r\nMicro GC Fusion API is a python module created from the INFICON Inc. Micro GC Fusion API Guide. Using this module allows users to build their program faster rather than interpereting the API guide.\r\n\r\n## Installation\r\n\r\nUse the package manager [pip](https://pypi.org/project/MicroGCFusionAPI/#description) to install Micro GC Fusion API.\r\n\r\n```bash\r\npip install MicroGCFusionAPI\r\n```\r\n\r\nUse the package manager to also update to the latest version of Micro-GC-Fusion-API\r\n\r\n```bash\r\npip install --upgrade MicroGCFusionAPI\r\n```\r\n\r\n## Usage\r\n\r\n```python\r\nfrom MicroGCFusionAPI import Fusion\r\n\r\n#Enter Micro GC Fusion IP Address (Ex: 10.10.0.1)\r\nf = Fusion('10.10.0.1')\r\n\r\n#Return connected status (True / False):\r\nf.connected()\r\n\r\n#Return instrument status ( {'sequence': 'public:sequence-not-loaded', 'system': 'public:ready'})\r\nstatus = f.status()\r\nsequenceStatus = status['sequence']\r\nsystemStatus = status['system']\r\n'''\r\nAvalible Status Options: \r\nSystem States:\r\n----------------------------------\r\npublic:bakeout\r\npublic:error-carrier-gas-pressure\r\npublic:error-method-load-failed\r\npublic:error-running-too-long\r\npublic:loading-method\r\npublic:manual-purge\r\npublic:method-running\r\npublic:preparing\r\npublic:ready\r\npublic:shutdown\r\npublic:standby\r\npublic:waiting-for-modules\r\n\r\n\r\nSequence States:\r\n---------------------------------\r\npublic:error-event-sequencer-down\r\npublic:sequence-loaded\r\npublic:sequence-not-loaded\r\npublic:sequence-running\r\n\r\n\r\nPossible Error States\r\n---------------------------------\r\npublic:error-moduleA\r\npublic:error-moduleB\r\npublic:error-moduleC\r\npublic:error-moduleD\r\npublic:error-system-uninitialized\r\npublic:uninitialized\r\n\r\n'''\r\n\r\n################################################## Info #############################################################\r\n#Subclasss of Fusion that provides information about the system\r\n\r\n #Return the system serial number (return: '70000001')\r\n f.info.serialNumber()\r\n\r\n #Retrun the system part number (return: 'F08504W02W02')\r\n f.info.partNumber()\r\n \r\n #Return the system host name (return: 'NatGas2')\r\n f.info.hostname()\r\n\r\n #Return the system storage limit status (return: 'ok', 'approaching', 'exceeded')\r\n f.info.storageLimit()\r\n\r\n################################################## Network ##########################################################\r\n#Subclass of Fusion that provides networking information\r\n \r\n #Return the networking information in JSON format:\r\n f.network.info()\r\n #Return Example:\r\n '''\r\n {'IPAddress': ['10.215.38.131'],\r\n 'date': 1725973498712,\r\n 'dhcpAddress': '10.215.38.131',\r\n 'hostname': 'NatGas2',\r\n 'macAddress': {'eth0': 'XX:XX:XX:XX:XX:XX', 'wlan0': 'XX:XX:XX:XX:XX:XX'},\r\n 'staticIP': {'address': '10.10.1.12',\r\n 'enabled': False,\r\n 'gateway': '',\r\n 'subnet': '255.255.0.0'},\r\n 'wifiEnable': True,\r\n 'wifiPassword': 'inficongc'}\r\n '''\r\n \r\n\r\n #Enable / Disable the wifi using the toggle wifi command.\r\n #Returns the current state of the system after toggle (return: True / False)\r\n f.network.toggleWifi()\r\n\r\n #Get the current Wifi password of the system (return: 'inficongc')\r\n f.network.getWifiPassword()\r\n\r\n #Set the wifi password of the system:\r\n f.network.setWifiPassword('NewWifiPassword')\r\n\r\n #Set the hostname of the system:\r\n f.network.setHostname('NewHostName')\r\n\r\n #Sync the system time to local computer:\r\n f.network.syncTime()\r\n\r\n################################################## Control ##########################################################\r\n#Subclass of Fusion that provides control over the system\r\n \r\n #Run the system when ready:\r\n f.control.run()\r\n\r\n #Run with run name and tags (input options: Name, [tags])\r\n f.control.runWithName('SampleName',['tagOne','tagTwo','tagThree'])\r\n\r\n #Stop a sequence in progress (the current run will run through completion)\r\n f.control.stopSequence()\r\n\r\n #Abort a current run and/or sequence immediately. Note this may cause future chromatography issues and is not recommended.\r\n f.control.abortCurrentRun()\r\n\r\n #Load a specific method using the method name:\r\n f.control.loadMethod('nameOfMethod')\r\n\r\n #Load a specifi sequence using the sequence name:\r\n f.control.loadSequence('nameOfSequence')\r\n\r\n #Reboot the system immediately\r\n f.control.reboot()\r\n\r\n #Start a bakeout procedure specified in minutes. Default is 30 minutes\r\n f.control.bakeout(minutes=120)\r\n\r\n #Send a get request with any string after ip address. Ex: https//10.215.38.3{string} where {string} = /v1/lastRun (return: JSON object)\r\n f.control.getStringCommand('string')\r\n\r\n################################################## Methods ##########################################################\r\n#Subclass of Fusion that provides access to the user methods on the system\r\n\r\n #Retrun all of the methods on the system in JSON structure, listed by method name\r\n f.methods.getAll()\r\n\r\n #Return a specific method by providing a method name\r\n f.methods.get('nameOfMethod')\r\n\r\n #Create a default method based on the system part number. These methods were created by INFICON GC experts and are a better starting point (Returns: name of new method)\r\n f.methods.methodByPN()\r\n\r\n################################################## Module ###########################################################\r\n#Subclass of Fusion that provides access to individual module information\r\n#This subclass requires the user to know the system configuration and which modules are installed in the system\r\n #Return serial number of each module in the system (Ex: 4 module system)\r\n f.moduleA.serialNumber()\r\n f.moduleB.serialNumber()\r\n f.moduleC.serialNumber()\r\n f.moduleD.serialnumber()\r\n #The rest of the examples will use \"moduleA\" as an example\r\n\r\n #Return the module information in a dictionary, (return Information: column type, injector, detector)\r\n f.moduleA.info()\r\n #Return Example:\r\n '''\r\n {'column': 'Rt-Molsieve 5A, 0.25mm (10m) [Rt-Q-BOND (3m)]',\r\n 'detector': 'TCD2',\r\n 'injector': 'Backflush 1.0 uL',\r\n 'reserved': '0'}\r\n '''\r\n #Return module serial number (return: '70094396')\r\n f.moduleA.serialNumber()\r\n\r\n #Return module part number (return: 'W02')\r\n f.moduleA.partNumber()\r\n\r\n #Return state of all module heaters in a dictionary\r\n f.moduleA.heaters()\r\n #Return Example:\r\n '''\r\n {'columnHeater': 59.98,\r\n 'externalColumnHeater': 60.0,\r\n 'flowManifoldHeater': 55.07,\r\n 'injectorDieHeater': 89.7,\r\n 'tcdHeater': 61.13}\r\n '''\r\n\r\n #Return current pressure(s) of the module\r\n f.moduleA.pressures()\r\n #Retrun Example:\r\n '''\r\n {'carrier': 20.0, \r\n 'inject': 0}\r\n '''\r\n\r\n #Return the raw TCD signal from the module (return: -188591.42065048218)\r\n f.moduleA.tcdSignal()\r\n\r\n #Return the current valve state (0 = inactive, 0.5 = active)\r\n f.moduleA.valves()\r\n #Return Ex:\r\n '''\r\n {'backflush': 0, \r\n 'forflush': 0, \r\n 'inject': 0, \r\n 'sample': 0.5, \r\n 'switch': 0}\r\n '''\r\n\r\n #Return fan duty cycle (1 = 100%)\r\n f.moduleA.fan()\r\n\r\n################################################## Databrowser ######################################################\r\n#Subclass of Fusion that provides access to the databrowser database.\r\n\r\n #Return the full datafile of the last run in JSON format. Note, these datafiles have a significant amount of data in them.\r\n f.data.lastRun()\r\n\r\n #Return the run ID (UUID) of the last run. This can be used to check if a new run is available ('ea9d0e98-c254-4481-a1aa-834ab2b8e38b')\r\n f.data.lastRunID()\r\n\r\n #Return the full datafiles of the last \"X\" number of runs. Note, a large X valves will take a significant amount of time to process.\r\n f.data.getLastX(5) #grabs the last 5 runs in a list []\r\n\r\n #Return datafile based on the run ID (uuid)\r\n f.data.getData(\"e4aca6cd-e2a0-4148-bad3-bdbdefec4ee9\")\r\n\r\n #Return based on the query text from the API guide:\r\n f.data.queryText('text=foo&sortByData=DESC') #Return a list of run IDs that contain the text \"foo\" sort that list in decending order\r\n #Query Text Options:\r\n '''\r\n Query parameter\t Type\t Description\r\n id\t String\t A string containing the id or pipe(|) delmited ids a document can contain\r\n text\t String\t A string containing the text or pipe(|) delmited names a document can contain\r\n date\t String\t ISO8601 string containing the date or pipe(|) delmited dates for when a run was executed.\r\n startDate\t String\t ISO8601 string for runs after this date.\r\n endDate\t String\t ISO8601 string for runs before this date.\r\n startDateInclusive\tboolean\t rue if the start date is inclusive (default), false otherwise.\r\n endDateInclusive\tboolean\t True if the end date is inclusive (default), false otherwise.\r\n limit\t Integer\t The number of rows to be returned.\r\n offset\t Integer\t The offset within the results set.\r\n sortByDatum\t String\t The name of the field to sort on. Only one supported currently.\r\n datumSortOrder\t String\t ASC or DESC to indicate the results should be sorted by a datum element in the document in that order.\r\n sortByDate\t String\t ASC or DESC to indicate the results should be sorted by date in that order. (Default:DESC)\r\n allData\t boolean\t Flag for whether or not to return all the data. Default: false.\r\n includeData\t String\t The data field name to include in the return.\r\n countOnly\t boolean\t Flag for whether or not to data, or the total number of rows in the data set. Default: false.\r\n noId\t boolean\t Flag for whether or not to return $id in run. Default: false\r\n updatedSince\t String\t ISO8601 string for runs updated after this date.\r\n '''\r\n \r\n #Replace a data file to the database by providing the correct datafile JSON structure. Typically this is done by pulling data, modifying then returning\r\n runData = f.data.lastRun() #Pull the datafile of the last run\r\n runData['annotations']['name'] = 'newSampleName' #Change the sample name by modifying the annotations/name section of the datafile \r\n f.data.replaceData(runData) #Return the datafile to the databrowser with the updated sample name\r\n\r\n #Add a new datafile to the databrowser, the run ID (uuid) cannot already be in the the databrowser or the upload will not work properly. \r\n f.data.addNewData(datafileInJsonStructure)\r\n \r\n #Reprocess a specific datafile by sending the run ID (uuid)\r\n f.data.reprocess(\"e4aca6cd-e2a0-4148-bad3-bdbdefec4ee9\")\r\n\r\n #Reprocess several data files by providing a list of run IDs \r\n runIDList = [\r\n \"e4aca6cd-e2a0-4148-bad3-bdbdefec4ee9\",\r\n \"24b5d865-8ac9-4d68-99dc-719772ceb6c2\",\r\n \"fa230e0e-5927-482a-a214-a696facc4bc2\",\r\n \"3e9159d9-bcf8-4050-967b-1d18661bed65\"\r\n ]\r\n f.data.reprocessMany(runIDList)\r\n\r\n #Return a simplier version of the last run data file\r\n f.data.compoundResults()\r\n #Return Example:\r\n '''\r\n\r\n '''\r\n\r\n################################################## Valco ############################################################\r\n#Subclass of the Fusion enabling status and control of a connected Valco Stream Selector valve\r\n \r\n #Return a True / False if the valve is currently connected\r\n f.valco.enabled()\r\n\r\n #Return information about the valco valve in a JSON structure\r\n f.valco.info()\r\n #Return Example:\r\n '''\r\n {'dataRate': 9600, \r\n 'mode': 3, \r\n 'position': 1, \r\n 'positions': [1, 2, 3, 4]}\r\n '''\r\n\r\n #Return the current position of the valve (return: 4)\r\n f.valco.getPos()\r\n\r\n #Set the position of the valve changing it\r\n f.valco.setPos(3) # change the valve postion to postion 3\r\n\r\n################################################## Notifications ####################################################\r\n#Subclass of the Fusion enabling messaging through notification system within the Micro GC Fusion GUI.\r\n #Send Info message (Blue notification appears in bottom right of the GUI, will disappear after a few seconds)\r\n f.notifications.info('this is an info message')\r\n\r\n #Send Warning message (Yellow notification appears in the bottom right of the GUI, will stay until the GUI user removes it)\r\n f.notifications.error(\"this is a warning message\")\r\n \r\n #Send Error message (Red notification appears in the bottom right of the GUI, will stay until the GUI user removes it)\r\n f.notifications.error('this is an error message')\r\n```\r\n## Contributing\r\n\r\nReach out to us via email with questions: fusion.syr@inficon.com\r\n\r\n## License\r\n\r\n[MIT](https://choosealicense.com/licenses/mit/)\r\n\r\n## Changelog\r\n### Version 0.0.7\r\n-Add bakeout command\r\n-Add getStringCommand\r\n-Add preset method\r\n-Clear all method preset option\r\n### Version 0.0.6\r\n-Readme typo fix\r\n-MethodByPN bug fix & installation issue\r\n-Removed Manifest.in from package\r\n### Version 0.0.5\r\n-Homepage update and bug fixes\r\n### Version 0.0.4\r\n-Error handling for invalid ip address\r\n\r\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Micro GC Fusion API",
"version": "0.0.7",
"project_urls": {
"Homepage": "https://bitbucket.org/inficon-global/microgcfusionapi/src/main/"
},
"split_keywords": [
"chromatography",
" gc",
" inficon",
" gas chromatography",
" micro",
" fusion",
" microgc",
" api",
" microgcfusionapi",
" micro gc fusion"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "beddfad5e56750d00454680bea62fe928ecda7e0266348e91aa21a2f57accba1",
"md5": "efb370f29de156508e2b08c66b3c0995",
"sha256": "7099d3b510237dcb224504ce6de40dcbdababe52ee8ff7f80c2248248eb23f42"
},
"downloads": -1,
"filename": "MicroGCFusionAPI-0.0.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "efb370f29de156508e2b08c66b3c0995",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 14297,
"upload_time": "2024-12-09T19:40:23",
"upload_time_iso_8601": "2024-12-09T19:40:23.483496Z",
"url": "https://files.pythonhosted.org/packages/be/dd/fad5e56750d00454680bea62fe928ecda7e0266348e91aa21a2f57accba1/MicroGCFusionAPI-0.0.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f656f1b92f1c077ae0b2a7c55d9af234c69ba731427dd4dcd60516e3a3e056a5",
"md5": "fb45f6c32d7d0fb4f83793c8f2032323",
"sha256": "4ccb327e25f9fa16d9f353e74ff47502e6e9f3a5101bce0c25119ccb0b00ca5c"
},
"downloads": -1,
"filename": "microgcfusionapi-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "fb45f6c32d7d0fb4f83793c8f2032323",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 18672,
"upload_time": "2024-12-09T19:40:24",
"upload_time_iso_8601": "2024-12-09T19:40:24.819538Z",
"url": "https://files.pythonhosted.org/packages/f6/56/f1b92f1c077ae0b2a7c55d9af234c69ba731427dd4dcd60516e3a3e056a5/microgcfusionapi-0.0.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-09 19:40:24",
"github": false,
"gitlab": false,
"bitbucket": true,
"codeberg": false,
"bitbucket_user": "inficon-global",
"bitbucket_project": "microgcfusionapi",
"lcname": "microgcfusionapi"
}