diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-31 07:59:57 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-31 07:59:57 +0000 |
commit | 6173108b0dfa540494ac994476378ffed4ab36d8 (patch) | |
tree | 2ba11396e4620197fd7451d7495bed2e21ca0836 | |
parent | 8237318c66978cf97133b3b33778986912bb214c (diff) |
automatic import of python-pygcn
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pygcn.spec | 361 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 363 insertions, 0 deletions
@@ -0,0 +1 @@ +/pygcn-1.1.3.tar.gz diff --git a/python-pygcn.spec b/python-pygcn.spec new file mode 100644 index 0000000..19647e2 --- /dev/null +++ b/python-pygcn.spec @@ -0,0 +1,361 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pygcn +Version: 1.1.3 +Release: 1 +Summary: Anonymous VOEvent client for receiving GCN/TAN notices in XML format +License: GPL-2+ +URL: https://github.com/nasa-gcn/pygcn +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/27/e9/57246fe197bb9478742d601398796224aefe509bc7f00f39c276dfb2be8f/pygcn-1.1.3.tar.gz +BuildArch: noarch + +Requires: python3-lxml + +%description +# PyGCN + + +[](https://codecov.io/gh/nasa-gcn/pygcn) + +Anonymous VOEvent client for receiving GCN/TAN notices in XML format + +The [Gamma-ray Coordinates Network/Transient Astronomy Network (GCN/TAN)][1] is +a system for distributing astronomical alerts, largely focused on operations of +and detections from high-energy satellite missions. + +GCN/TAN disseminates both Notices (prompt, machine-readable alerts) and +Circulars (human-readable correspondence) through a handful of delivery methods +and formats. + +This package implements a simple client that listens for [VOEvent][2] XML +format notices over the custom TCP/IP [VOEvent Transport Protocol][3]. By +default, it connects to one of the anonymous GCN/TAN server, so no sign-up +or configuration is necessary to begin receiving alerts. + +## Installation + +To install PyGCN, simply run: + + $ pip install --user pygcn + +## Usage + +PyGCN provides an example script called `pygcn-listen` that will simply write +all VOEvents that it receives to files in the current directory. To try it out, +simply run: + + $ pygcn-listen + +and then type Control-C to quit. + +## Writing a custom GCN handler + +You can also write your own handler that performs a custom action for every GCN +that is received. A handler function takes two arguments: `payload`, the raw +content of the GCN, and `root`, the root element of the XML document as parsed +by [`lxml.etree`][5]. Here is a basic example: + +```python +#!/usr/bin/env python +import gcn + +# Define your custom handler here. +def handler(payload, root): + # Get the IVORN, or unique VOEvent ID, and print it. + print(root.attrib['ivorn']) + + # Print all of the event attributes. + for param in root.findall('./What/Param'): + name = param.attrib['name'] + value = param.attrib['value'] + print('{} = {}'.format(name, value)) + +# Listen for VOEvents until killed with Control-C. +gcn.listen(handler=handler) +``` +## Filtering + +You can also filter events by notice type using +`gcn.include_notice_types` or `gcn.exclude_notice_types`. +Here is an example: + +```python +#!/usr/bin/env python +import gcn + +# Define your custom handler here. +@gcn.include_notice_types( + gcn.notice_types.FERMI_GBM_FLT_POS, # Fermi GBM localization (flight) + gcn.notice_types.FERMI_GBM_GND_POS, # Fermi GBM localization (ground) + gcn.notice_types.FERMI_GBM_FIN_POS) # Fermi GBM localization (final) +def handler(payload, root): + # Look up right ascension, declination, and error radius fields. + pos2d = root.find('.//{*}Position2D') + ra = float(pos2d.find('.//{*}C1').text) + dec = float(pos2d.find('.//{*}C2').text) + radius = float(pos2d.find('.//{*}Error2Radius').text) + + # Print. + print('ra = {:g}, dec={:g}, radius={:g}'.format(ra, dec, radius)) + +# Listen for VOEvents until killed with Control-C. +gcn.listen(handler=handler) +``` + + +[1]: http://gcn.gsfc.nasa.gov +[2]: http://www.ivoa.net/documents/VOEvent +[3]: http://www.ivoa.net/documents/Notes/VOEventTransport +[4]: https://docs.python.org/2/library/xml.etree.elementtree.html +[5]: http://lxml.de + + +%package -n python3-pygcn +Summary: Anonymous VOEvent client for receiving GCN/TAN notices in XML format +Provides: python-pygcn +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pygcn +# PyGCN + + +[](https://codecov.io/gh/nasa-gcn/pygcn) + +Anonymous VOEvent client for receiving GCN/TAN notices in XML format + +The [Gamma-ray Coordinates Network/Transient Astronomy Network (GCN/TAN)][1] is +a system for distributing astronomical alerts, largely focused on operations of +and detections from high-energy satellite missions. + +GCN/TAN disseminates both Notices (prompt, machine-readable alerts) and +Circulars (human-readable correspondence) through a handful of delivery methods +and formats. + +This package implements a simple client that listens for [VOEvent][2] XML +format notices over the custom TCP/IP [VOEvent Transport Protocol][3]. By +default, it connects to one of the anonymous GCN/TAN server, so no sign-up +or configuration is necessary to begin receiving alerts. + +## Installation + +To install PyGCN, simply run: + + $ pip install --user pygcn + +## Usage + +PyGCN provides an example script called `pygcn-listen` that will simply write +all VOEvents that it receives to files in the current directory. To try it out, +simply run: + + $ pygcn-listen + +and then type Control-C to quit. + +## Writing a custom GCN handler + +You can also write your own handler that performs a custom action for every GCN +that is received. A handler function takes two arguments: `payload`, the raw +content of the GCN, and `root`, the root element of the XML document as parsed +by [`lxml.etree`][5]. Here is a basic example: + +```python +#!/usr/bin/env python +import gcn + +# Define your custom handler here. +def handler(payload, root): + # Get the IVORN, or unique VOEvent ID, and print it. + print(root.attrib['ivorn']) + + # Print all of the event attributes. + for param in root.findall('./What/Param'): + name = param.attrib['name'] + value = param.attrib['value'] + print('{} = {}'.format(name, value)) + +# Listen for VOEvents until killed with Control-C. +gcn.listen(handler=handler) +``` +## Filtering + +You can also filter events by notice type using +`gcn.include_notice_types` or `gcn.exclude_notice_types`. +Here is an example: + +```python +#!/usr/bin/env python +import gcn + +# Define your custom handler here. +@gcn.include_notice_types( + gcn.notice_types.FERMI_GBM_FLT_POS, # Fermi GBM localization (flight) + gcn.notice_types.FERMI_GBM_GND_POS, # Fermi GBM localization (ground) + gcn.notice_types.FERMI_GBM_FIN_POS) # Fermi GBM localization (final) +def handler(payload, root): + # Look up right ascension, declination, and error radius fields. + pos2d = root.find('.//{*}Position2D') + ra = float(pos2d.find('.//{*}C1').text) + dec = float(pos2d.find('.//{*}C2').text) + radius = float(pos2d.find('.//{*}Error2Radius').text) + + # Print. + print('ra = {:g}, dec={:g}, radius={:g}'.format(ra, dec, radius)) + +# Listen for VOEvents until killed with Control-C. +gcn.listen(handler=handler) +``` + + +[1]: http://gcn.gsfc.nasa.gov +[2]: http://www.ivoa.net/documents/VOEvent +[3]: http://www.ivoa.net/documents/Notes/VOEventTransport +[4]: https://docs.python.org/2/library/xml.etree.elementtree.html +[5]: http://lxml.de + + +%package help +Summary: Development documents and examples for pygcn +Provides: python3-pygcn-doc +%description help +# PyGCN + + +[](https://codecov.io/gh/nasa-gcn/pygcn) + +Anonymous VOEvent client for receiving GCN/TAN notices in XML format + +The [Gamma-ray Coordinates Network/Transient Astronomy Network (GCN/TAN)][1] is +a system for distributing astronomical alerts, largely focused on operations of +and detections from high-energy satellite missions. + +GCN/TAN disseminates both Notices (prompt, machine-readable alerts) and +Circulars (human-readable correspondence) through a handful of delivery methods +and formats. + +This package implements a simple client that listens for [VOEvent][2] XML +format notices over the custom TCP/IP [VOEvent Transport Protocol][3]. By +default, it connects to one of the anonymous GCN/TAN server, so no sign-up +or configuration is necessary to begin receiving alerts. + +## Installation + +To install PyGCN, simply run: + + $ pip install --user pygcn + +## Usage + +PyGCN provides an example script called `pygcn-listen` that will simply write +all VOEvents that it receives to files in the current directory. To try it out, +simply run: + + $ pygcn-listen + +and then type Control-C to quit. + +## Writing a custom GCN handler + +You can also write your own handler that performs a custom action for every GCN +that is received. A handler function takes two arguments: `payload`, the raw +content of the GCN, and `root`, the root element of the XML document as parsed +by [`lxml.etree`][5]. Here is a basic example: + +```python +#!/usr/bin/env python +import gcn + +# Define your custom handler here. +def handler(payload, root): + # Get the IVORN, or unique VOEvent ID, and print it. + print(root.attrib['ivorn']) + + # Print all of the event attributes. + for param in root.findall('./What/Param'): + name = param.attrib['name'] + value = param.attrib['value'] + print('{} = {}'.format(name, value)) + +# Listen for VOEvents until killed with Control-C. +gcn.listen(handler=handler) +``` +## Filtering + +You can also filter events by notice type using +`gcn.include_notice_types` or `gcn.exclude_notice_types`. +Here is an example: + +```python +#!/usr/bin/env python +import gcn + +# Define your custom handler here. +@gcn.include_notice_types( + gcn.notice_types.FERMI_GBM_FLT_POS, # Fermi GBM localization (flight) + gcn.notice_types.FERMI_GBM_GND_POS, # Fermi GBM localization (ground) + gcn.notice_types.FERMI_GBM_FIN_POS) # Fermi GBM localization (final) +def handler(payload, root): + # Look up right ascension, declination, and error radius fields. + pos2d = root.find('.//{*}Position2D') + ra = float(pos2d.find('.//{*}C1').text) + dec = float(pos2d.find('.//{*}C2').text) + radius = float(pos2d.find('.//{*}Error2Radius').text) + + # Print. + print('ra = {:g}, dec={:g}, radius={:g}'.format(ra, dec, radius)) + +# Listen for VOEvents until killed with Control-C. +gcn.listen(handler=handler) +``` + + +[1]: http://gcn.gsfc.nasa.gov +[2]: http://www.ivoa.net/documents/VOEvent +[3]: http://www.ivoa.net/documents/Notes/VOEventTransport +[4]: https://docs.python.org/2/library/xml.etree.elementtree.html +[5]: http://lxml.de + + +%prep +%autosetup -n pygcn-1.1.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pygcn -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.3-1 +- Package Spec generated @@ -0,0 +1 @@ +41caf34d468680d049a6aaca2b5da501 pygcn-1.1.3.tar.gz |