Package: nextinspace
Nextinspace“Never miss a launch.”OverviewA command-line tool for seeing the latest in space. Nextinspace also supports use as a Python library, so you can integrate it into your application. You can also get data printed to the terminal in JSON, which can be piped into another program.Features•Installation and Documentation•Using the Nextinspace Public API•Using Nextinspace in Shell Scripting•CLI Reference•CreditsFeaturesGet the nextnitems:Nextinspace by default prints the closest upcoming item, but you can request as many items as theLL2 APIwill provide.Filter by type:Nextinspace allows you to filter upcoming-related by type. You can choose to only seelaunches, only seeevents, or both.Toggle the verbosity:Nextinspace offers quiet, normal, and verbose modes. With--quiet, you can get a quick overview of upcoming items.
With--verbose, you can see all of the important details such as description and launcher.JSON output:Nextinspace provides a--jsonflag for output in JSON format. This can be parsed with tools likejq.Pretty printing:Nextinspace prints upcoming items in formatted panels and with colored text.Installation and DocumentationNextinspace can be installed usingpip:pipinstallnextinspaceIt can also be installed directly from Github:pipinstallgit+https://github.com/gideonshaked/nextinspaceOr you can use your favorite package manager:# Arch Linuxyay-Snextinspace# Nixnix-env-iAnixpkgs.nextinspaceDocumentation can be found atRead the Docs.Using the Nextinspace Public APINextinspace defines apublic APIof functions and classes that you can use in your code.>>>importnextinspaceExample 1: Get the next upcoming space-related thing>>>next_in_space=nextinspace.nextinspace(1)>>>next_in_space(nextinspace.Event('Starship SN9 Pressure Test','Boca Chica, Texas',datetime.datetime(2020,12,28,21,0,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=68400),'EST')),'SpaceX has conducted a pressure test on Starship SN9.','Ambient Pressure Test'),)>>>print(next_in_space[0].date)2020-12-2821:00:00-05:00Example 2: Get the next two upcoming events>>>next_2_events=nextinspace.next_event(2)>>>next_2_events(nextinspace.Event('Starship SN9 Pressure Test','Boca Chica, Texas',datetime.datetime(2020,12,28,21,0,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=68400),'EST')),'SpaceX has conducted a pressure test on Starship SN9.','Ambient Pressure Test'),nextinspace.Event('Starship SN9 Cryoproof Test','Boca Chica, Texas',datetime.datetime(2020,12,29,18,0,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=68400),'EST')),'SpaceX will likely conduct a cryoproof test on Starship SN9. This is the first cryo test performed on the vehicle.','Cryoproof Test'))>>>next_2_events[1].name'Starship SN9 Cryoproof Test'Example 3: Get the next upcoming launch>>>next_space_launch=nextinspace.next_launch(1)>>>next_space_launch(nextinspace.Launch('Soyuz STA/Fregat | CSO-2','Soyuz Launch Complex, Kourou, French Guiana',datetime.datetime(2020,12,29,11,42,7,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=68400),'EST')),'The CSO-2 (Composante Spatiale Optique-2) satellite is the second of three new-generation high-resolution optical imaging satellites for the French military, replacing the Helios 2 spy satellite series.','Government/Top Secret',None),)>>>print(next_space_launch[0].launcher)NoneExample 4: Get the next two upcoming launches and their launchers>>>next_2_launches=nextinspace.next_launch(2,include_launcher=True)>>>next_2_launches(nextinspace.Launch('Soyuz STA/Fregat | CSO-2','Soyuz Launch Complex, Kourou, French Guiana',datetime.datetime(2020,12,29,11,42,7,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=68400),'EST')),'The CSO-2 (Composante Spatiale Optique-2) satellite is the second of three new-generation high-resolution optical imaging satellites for the French military, replacing the Helios 2 spy satellite series.','Government/Top Secret',nextinspace.Launcher('Soyuz STA/Fregat',7020,2810,None,312,3,46.3,8,8,0,datetime.datetime(2011,12,16,19,0,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=68400),'EST')))),nextinspace.Launch('Falcon 9 Block 5 | Türksat 5A','Space Launch Complex 40, Cape Canaveral, FL, USA',datetime.datetime(2021,1,4,20,27,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=68400),'EST')),'Türksat 5A is the first of two Turkish next generation communications satellites, which will be operated by Türksat for commercial and military purposes.','Communications',nextinspace.Launcher('Falcon 9 Block 5',22800,8300,7607,549,2,70.0,47,47,0,datetime.datetime(2018,5,10,20,0,tzinfo=datetime.timezone(datetime.timedelta(days=-1,seconds=72000),'EDT')))))>>>next_2_launches[0].launcher.failed_launches0Using Nextinspace in Shell ScriptingNextinspace is capable of outputting structured JSON data that can be parsed by the likes ofjq. As such, you can do something like this:❯next_3_in_space=$(nextinspace3--verbose--json)❯echo$next_3_in_space|jq"."[{"type":"launch","name":"Soyuz STA/Fregat | CSO-2","location":"Soyuz Launch Complex, Kourou, French Guiana","date":"2020-12-29T16:42:07Z","description":"The CSO-2 (Composante Spatiale Optique-2) satellite is the second of three new-generation high-resolution optical imaging satellites for the French military, replacing the Helios 2 spy satellite series.","subtype":"Government/Top Secret","launcher":{"name":"Soyuz STA/Fregat","payload_leo":7020,"payload_gto":2810,"liftoff_thrust":null,"liftoff_mass":312,"max_stages":3,"height":46.3,"successful_launches":8,"consecutive_successful_launches":8,"failed_launches":0,"maiden_flight_date":"2011-12-17"}},{"type":"event","name":"Starship SN9 Cryoproof Test","location":"Boca Chica, Texas","date":"2020-12-29T23:00:00Z","description":"SpaceX will likely conduct a cryoproof test on Starship SN9. This is the first cryo test performed on the vehicle.","subtype":"Cryoproof Test"},{"type":"event","name":"SLS Green Run Hot Fire","location":"Stennis Space Center, Mississippi","date":"2020-12-31T00:00:00Z","description":"The core stage of the Space Launch System will undergo the final 'Green Run' test, where the core stage will be fired for 8 minutes, demonstrating performance similar to an actual launch.","subtype":"Static Fire"}]❯echo$next_3_in_space|jq".[].name""Soyuz STA/Fregat | CSO-2""Starship SN9 Cryoproof Test""SLS Green Run Hot Fire"The structure of the JSON outputted by nextinspace is basically demonstrated in the example above.
The structure and values of the data reflect the relationships between theLaunch,Event, andLauncherclasses, with a few notable exceptions:Thetype_attribute:Thetype_attribute of NextinspaceEventandLaunchobjects is stored in thesubtypekey. Thetypekey actually holds the class of the Nextinspace object represented in the JSON object (eitherlaunchorevent).Thedatekey:Internally, Nextinspace stores dates and times in local time, but for JSON output Nextinspace converts date and time values to UTC. Also, Nextinspace outputs date and time values inISO 8601 format.CLI Reference❯ nextinspace --help
usage: nextinspace [-h] [-e | -l] [-v | -q] [--json] [--version] [number of items]

Never miss a launch.

positional arguments:
  number of items      The number of items to display.

optional arguments:
  -h, --help           show this help message and exit
  -e, --events-only    Only show events. These are typically not covered by standard launches. These events could be spacecraft landings, engine tests, or spacewalks.
  -l, --launches-only  Only display orbital and suborbital launches. Generally these will be all orbital launches and suborbital launches which aim to reach “space” or the Karman line.
  -v, --verbose        Display additional details about launches.
  -q, --quiet          Only display name, location, date, and type.
  --json               Output data in JSON format. Note that '--quiet' has no effect when this flag is set.
  --version            show program's version number and exitCreditsThis project would not have been possible without theLaunch Library 2 API. Please considersponsoring them on Patreon.