Pirate Weather API Translation Module
===============================
Introduction
------------
The [Pirate Weather API][1] has, since version 2.5, included a module for
producing textual weather summaries from its weather data. These summaries
have always been in English (since that's the only language we know) and have
always been procedurally generated (since there are so many possible weather
conditions). Procedural generation makes translating these summaries into other
languages especially difficult, because the naive approach—using a table
lookup to replace an English sentence with one of a different language—becomes
impractical, requiring a *very* large table to support!
[1]: https://pirateweather.net/en/latest/
This software module was developed in order to work around these issues. We are
modifying the Pirate Weather API text summary code to generate a machine-readable
format (described below) rather than it's usual English; summaries in this new
format are then handed off to this module for translation into the desired
language. Since this module is open-source, anyone may contribute additional
language components to it, so that the desired language can be used in the
Pirate Weather API.
Appendix A: Pirate Weather Summary Format
-----------------------------------
Below is a listing of every possible machine-readable summary produced by
Pirate Weather. The listing is recursive so as to better describe how the various
structural components interact.
### Status Information
Instead of producing a summary of weather information, we may sometimes generate
a status message indicating an error of some sort. Such messages may take one of
the following forms:
* `["sentence", [STATUS_MESSAGE, STATUS_TYPE, REASON]]`
`STATUS_MESSAGE` may be one of the following:
* `"next-hour-forecast-status"`: we have information to convey about our
hyperlocal next-hour forecasts
`STATUS_TYPE` may be one of the following:
* `"unavailable"`: no forecast is available for this request
* `"partially-unavailable"`: only a partial forecast is available for this request
* `"temporarily-unavailable"`: no forecast is available for this request, but we
expect it to be available again in the future
`REASON` may be one of the following:
* `"station-offline"`: we cannot generate a forecast because all nearby weather
stations are offline (e.g. for maintenance)
* `"station-incomplete"`: we cannot generate a forecast because of gaps in the
coverage of all nearby weather stations (e.g. radar beams are blocked by
local terrain)
`"next-hour-forecast-status"`, `"unavailable"`, `"partially-unavailable"`, `"temporarily-unavailable"`, `"station-offline"`, and `"station-incomplete"` are not used in any other forms.
### Moment Summaries
When the API is producing a text summary for a single moment in time (that is,
`currently.summary` and `hourly.data[N].summary`), summaries of the following
structure are produced:
* `["title", WEATHER_CONDITION]`
* `["title", ["and", WEATHER_CONDITION, WEATHER_CONDITION]]`
The `"title"` component is never used in any other situation, and signifies
that (in English, anyway) these conditions represent phrases rather than
complete sentences; as such, they are capitalized like a *title* (that is, each
word is capitalized and there is no punctuation). For all below cases, the
`"summary"` component wraps the construction (signifying that the summary
represents a full, English sentence, meaning that only the first word is
capitalized, and the sentence is to end with a period).
`"and"` is used all over the place. Sorry.
### Hour Summaries
For text summaries for the next hour (that is, `minutely.summary`), summaries
of the following formats are produced:
* `["sentence", ["for-hour", WEATHER_CONDITION]]`
* `["sentence", ["starting-in", PRECIPITATION_TYPE, DURATION]]`
* `["sentence", ["stopping-in", PRECIPITATION_TYPE, DURATION]]`
* `["sentence", ["starting-then-stopping-later", PRECIPITATION_TYPE, DURATION, DURATION]]`
* `["sentence", ["stopping-then-starting-later", PRECIPITATION_TYPE, DURATION, DURATION]]`
Except for the first case, each such summary only takes precipitation into
account, and tells how the intensity of precipitation will vary over the next
hour or so.
The `DURATION`s listed above may be either of:
* `["less-than", ["minutes", 1]]` ("less than a minute")
* `["minutes", NUMBER]` ("X minutes")
`"for-hour"`, `"starting-in"`, `"stopping-in"`,
`"starting-then-stopping-later"`, `"stopping-then-starting-later"`, and
`"minutes"` are only used as above. `"less-than"` is also used for snow
accumulation (see below).
### Day Summaries
Day summaries are produced by the API when a duration of 24 hours is under
consideration (that is, `hourly.summary` and `daily.data[N].summary`). They are
the most complex summaries in the API, owing to the number of possible
combinations of the various terms. They are of the following formats:
* `["sentence", DAY_CONDITION_SUMMARY]`
* `["sentence", ["and", DAY_CONDITION_SUMMARY, DAY_CONDITION_SUMMARY]]`
#### Day Condition Summaries
A "day condition" represents a specific weather condition at a specific time of
day. (Or a larger period of the day, as the case may be.)
* `["for-day", WEATHER_CONDITION]`
* `["during", WEATHER_CONDITION, TIME_OF_DAY]`
* `["during", WEATHER_CONDITION, ["and", TIME_OF_DAY, TIME_OF_DAY]]`
* `["starting", WEATHER_CONDITION, TIME_OF_DAY]`
* `["until", WEATHER_CONDITION, TIME_OF_DAY]`
* `["starting-continuing-until", WEATHER_CONDITION, TIME_OF_DAY, TIME_OF_DAY]`
* `["until-starting-again", WEATHER_CONDITION, TIME_OF_DAY, TIME_OF_DAY]`
`"for-day"`, `"starting"`, `"until"`, `"starting-continuing-until"`, and
`"until-starting-again"` are only used in the above manner, and may be
considered analagous to the five similar cases in hourly summaries. `"during"`
is used both here and in weekly summaries, below.
#### Times of Day
Daily summaries covering a specific day use the following time periods:
* `"morning"`
* `"afternoon"`
* `"evening"`
* `"night"`
Daily summaries covering the next 24 hours (as in a forecast) use the following
time periods instead:
* `"today-morning"`
* `"today-afternoon"`
* `"today-evening"`
* `"today-night"`
* `"later-today-morning"`
* `"later-today-afternoon"`
* `"later-today-evening"`
* `"later-today-night"`
* `"tomorrow-morning"`
* `"tomorrow-afternoon"`
* `"tomorrow-evening"`
* `"tomorrow-night"`
In general, the most specific case is used. (For example, if it is currently
afternoon and a weather condition would occur later in the afternoon,
`"later-today-afternoon"` would be used. If it was any other time of day,
`"today-afternoon"` would be used.)
The exact times that each duration begins or ends is not intended to be
critical, and nonprecise terminology should be used if possible. However, for
aid in translation, the time periods currently correspond to the following:
* **morning:** 04:00 (4am) to 12:00 (12pm)
* **afternoon:** 12:00 (12pm) to 17:00 (5pm)
* **evening:** 17:00 (5pm) to 22:00 (10pm)
* **night:** 22:00 (10pm) to 04:00 (4am)
### Week Summaries
For summaries spanning an entire week (`daily.summary`), the following format
is used:
* `["sentence", ["with", WEEKLY_PRECIPITATION_SUMMARY, WEEKLY_TEMPERATURE_SUMMARY]]`
Since an entire week is a very broad span of time, we concern ourselves only
with the most broadly applicable information: which days will have rain, and
how the temperatures will fluctuate. The sentence is broken into two parts,
which each comprise one of the above.
`"with"` is not used in any other way.
#### Weekly Precipitation Summary
A "weekly precipitation summary" is used to describe which days of the week are
expected to have rain, as compactly as possible.
* `["for-week", PRECIPITATION_TYPE]`
* `["over-weekend", PRECIPITATION_TYPE]`
* `["during", PRECIPITATION_TYPE, DAY_OF_WEEK]`
* `["during", PRECIPITATION_TYPE, ["and", DAY_OF_WEEK, DAY_OF_WEEK]]`
* `["during", PRECIPITATION_TYPE, ["through", DAY_OF_WEEK, DAY_OF_WEEK]]`
`"for-week"`, `"over-weekend"`, and `"through"` are both only used as above.
`"during"` is used both here and in daily summaries.
#### Weekly Temperature Summary
A "weekly temperature summary" describes the general pattern of temperatures
over the course of the next week: whether they'll get hotter, colder,
hotter-then-colder, or colder-then-hotter.
* `["temperatures-rising", TEMPERATURE, DAY_OF_WEEK]`
* `["temperatures-falling", TEMPERATURE, DAY_OF_WEEK]`
* `["temperatures-peaking", TEMPERATURE, DAY_OF_WEEK]`
* `["temperatures-valleying", TEMPERATURE, DAY_OF_WEEK]`
`"temperatures-peaking"`, `"temperatures-valleying"`, `"temperatures-rising"`,
and `"temperatures-falling"` are all only used as above.
#### Temperatures
* `["fahrenheit", NUMBER]`
* `["celsius", NUMBER]`
Every language should support both temperature units, as the choice of language
and units are separate options in the API (and can be mixed-and-matched as
desired).
#### Days of the Week
* `"today"`
* `"tomorrow"`
* `"sunday"`
* `"monday"`
* `"tuesday"`
* `"wednesday"`
* `"thursday"`
* `"friday"`
* `"saturday"`
* `"next-sunday"`
* `"next-monday"`
* `"next-tuesday"`
* `"next-wednesday"`
* `"next-thursday"`
* `"next-friday"`
* `"next-saturday"`
`"today"` and `"tomorrow"` are used in preference to the other cases. The
`"next-*"` cases are used when the day in question is a week from today (e.g.
if today is Wednesday, and we expect rain a week from today, then the summary
would be `["during", "rain", "next-wednesday"]`.
### Weather Conditions
#### Precipitation Types
* `"no-precipitation"`: Represents no precipitation. Only used in "weekly
precipitation summary" blocks. (This condition is in contrast to `"clear"`,
which represents no significant weather of any kind.)
* `"mixed-precipitation"`: Represents multiple types of precipitation, such
as both rain and snow. Only used in "weekly precipitation summary" blocks;
in all other cases, the predominate type of precipitation is used.
* `GENERIC_TYPE`
* `RAIN_TYPE`
* `SLEET_TYPE`
* `SNOW_TYPE`
* `["parenthetical", EXPECTED_PRECIP_TYPE, SNOW_ACCUMULATION]`: For daily or
weekly summaries, if a significant amount of snow is expected, we will
qualify it with the amount of expected snow accumulation. (For example,
"snow (3-4 in.) throughout the day".) PLEASE NOTE that it is possible for a
chance of snow accumulation to be forecasted even if the expected
precipitation type is rain or sleet: this may occur if the forecasted
temperature is right around the freezing point. Translations should clarify
that the parenthetical refers to a chance of snow in such circumstances.
(For example, "sleet (chance of 3-4 in. of snow) throughout the day".)
In each of the below precipitation types, the intensity of precipitation is
(very approximately) as follows:
* `"very-light-X"`: 0.02–0.4 mm/hr
* `"light-X"`: 0.4–2.5 mm/hr
* `"medium-X"`: 2.5–10 mm/hr
* `"heavy-X"`: 10 mm/hr
Snow intensities are (also very approximately) one-third of these. (That is,
`"heavy-snow"` is more like 3 mm/hr.) However, these are only intended as a
rough guide, as these values change over time as we fine-tune our system.
##### Generic Types
Generic precipitation forms are used when we don't have information regarding
the exact type of precipitation expected. (This is a rare occurance.)
* `"possible-very-light-precipitation"`
* `"very-light-precipitation"`
* `"possible-light-precipitation"`
* `"light-precipitation"`
* `"medium-precipitation"`
* `"heavy-precipitation"`
##### Rain Types
Rain precipitation forms represent liquid precipitation.
* `"possible-very-light-rain"`
* `"very-light-rain"`
* `"possible-light-rain"`
* `"light-rain"`
* `"medium-rain"`
* `"heavy-rain"`
##### Sleet Types
Sleet precipitation forms represent sleet, freezing rain, or ice pellets, of
the sort that generally occur in winter when temperatures are around freezing.
* `"possible-very-light-sleet"`
* `"very-light-sleet"`
* `"possible-light-sleet"`
* `"light-sleet"`
* `"medium-sleet"`
* `"heavy-sleet"`
##### Snow Types
Snow precipitation forms represent solid precipitation in the form of
snowflakes.
* `"possible-very-light-snow"`
* `"very-light-snow"`
* `"possible-light-snow"`
* `"light-snow"`
* `"medium-snow"`
* `"heavy-snow"`
##### Snow Accumulation
Represents a distance measurement indicating the amount of snow accumulation is
expected. These take the form of "N inches", "< N inches", or "M-N inches"
in English, respectively.
* `["inches", NUMBER]`
* `["less-than", ["inches", 1]]`
* `["inches", ["range", NUMBER, NUMBER]]`
* `["centimeters", NUMBER]`
* `["less-than", ["centimeters", 1]]`
* `["centimeters", ["range", NUMBER, NUMBER]]`
#### Other Weather Conditions
* `"clear"`: Represents the lack of *any* significant weather occurring and cloud cover covering less than 11.5% of the sky.
* `"possible-thunderstorm"`: Represents a chance of thunderstorms occurring.
* `"thunderstorm"`: Represents thunderstorms occurring.
* `"light-wind"`: Represents light wind at a location. (15 mph (~24.14 km/h) or greater)
* `"medium-wind"`: Represents moderate wind at a location. (~22.37 mph (36 km/h) or greater)
* `"heavy-wind"`: Represents strong wind at a location. (40 mph (~64.37 km/h) or greater)
* `"low-humidity"`: Represents when the humidity is below 15%
* `"high-humidity"`: Represents when the humidity is above 95% and the air temperature is above 20C (68F).
* `"fog"`: Represents when there is less than approximately 0.62 miles (1 kilometers) of
visibility.
* `"very-light-clouds"`: Represents when clouds cover more less than 37.5% of the sky.
(Usually called "mostly clear" in English.)
* `"light-clouds"`: Represents when clouds cover more than than 37.5% but less than 62.5% of the sky.
(Usually called "partly cloudy" in English.)
* `"medium-clouds"`: Represents when clouds cover more than 62.5% (but not
all) of the sky. (Usually called "mostly cloudy" in English.)
* `"heavy-clouds"`: Represents complete (or nearly-complete) cloud cover.
(Usually called "overcast" in English.)
Raw data
{
"_id": null,
"home_page": "https://github.com/Pirate-Weather/translations",
"name": "pirateweather-translations",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "weather API pirateweather translations",
"author": "Pirate-Weather",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/f5/9c/9b9938338e7d8934dc8edbce9d1d1fbec2ed61c62fffcc567309b3ef0d52/pirateweather_translations-0.0.8.tar.gz",
"platform": null,
"description": "Pirate Weather API Translation Module\n===============================\n\nIntroduction\n------------\n\nThe [Pirate Weather API][1] has, since version 2.5, included a module for\nproducing textual weather summaries from its weather data. These summaries\nhave always been in English (since that's the only language we know) and have\nalways been procedurally generated (since there are so many possible weather\nconditions). Procedural generation makes translating these summaries into other\nlanguages especially difficult, because the naive approach\u2014using a table\nlookup to replace an English sentence with one of a different language\u2014becomes\nimpractical, requiring a *very* large table to support!\n\n[1]: https://pirateweather.net/en/latest/\n\nThis software module was developed in order to work around these issues. We are\nmodifying the Pirate Weather API text summary code to generate a machine-readable\nformat (described below) rather than it's usual English; summaries in this new\nformat are then handed off to this module for translation into the desired\nlanguage. Since this module is open-source, anyone may contribute additional\nlanguage components to it, so that the desired language can be used in the\nPirate Weather API.\n\nAppendix A: Pirate Weather Summary Format\n-----------------------------------\n\nBelow is a listing of every possible machine-readable summary produced by\nPirate Weather. The listing is recursive so as to better describe how the various\nstructural components interact.\n\n### Status Information\n\nInstead of producing a summary of weather information, we may sometimes generate\na status message indicating an error of some sort. Such messages may take one of\nthe following forms:\n\n* `[\"sentence\", [STATUS_MESSAGE, STATUS_TYPE, REASON]]`\n\n`STATUS_MESSAGE` may be one of the following:\n\n* `\"next-hour-forecast-status\"`: we have information to convey about our\n hyperlocal next-hour forecasts\n\n`STATUS_TYPE` may be one of the following:\n\n* `\"unavailable\"`: no forecast is available for this request\n* `\"partially-unavailable\"`: only a partial forecast is available for this request\n* `\"temporarily-unavailable\"`: no forecast is available for this request, but we\n expect it to be available again in the future\n\n`REASON` may be one of the following:\n\n* `\"station-offline\"`: we cannot generate a forecast because all nearby weather\n stations are offline (e.g. for maintenance)\n* `\"station-incomplete\"`: we cannot generate a forecast because of gaps in the\n coverage of all nearby weather stations (e.g. radar beams are blocked by\n local terrain)\n\n`\"next-hour-forecast-status\"`, `\"unavailable\"`, `\"partially-unavailable\"`, `\"temporarily-unavailable\"`, `\"station-offline\"`, and `\"station-incomplete\"` are not used in any other forms.\n\n### Moment Summaries\n\nWhen the API is producing a text summary for a single moment in time (that is,\n`currently.summary` and `hourly.data[N].summary`), summaries of the following\nstructure are produced:\n\n* `[\"title\", WEATHER_CONDITION]`\n* `[\"title\", [\"and\", WEATHER_CONDITION, WEATHER_CONDITION]]`\n\nThe `\"title\"` component is never used in any other situation, and signifies\nthat (in English, anyway) these conditions represent phrases rather than\ncomplete sentences; as such, they are capitalized like a *title* (that is, each\nword is capitalized and there is no punctuation). For all below cases, the\n`\"summary\"` component wraps the construction (signifying that the summary\nrepresents a full, English sentence, meaning that only the first word is\ncapitalized, and the sentence is to end with a period).\n\n`\"and\"` is used all over the place. Sorry.\n\n### Hour Summaries\n\nFor text summaries for the next hour (that is, `minutely.summary`), summaries\nof the following formats are produced:\n\n* `[\"sentence\", [\"for-hour\", WEATHER_CONDITION]]`\n* `[\"sentence\", [\"starting-in\", PRECIPITATION_TYPE, DURATION]]`\n* `[\"sentence\", [\"stopping-in\", PRECIPITATION_TYPE, DURATION]]`\n* `[\"sentence\", [\"starting-then-stopping-later\", PRECIPITATION_TYPE, DURATION, DURATION]]`\n* `[\"sentence\", [\"stopping-then-starting-later\", PRECIPITATION_TYPE, DURATION, DURATION]]`\n\nExcept for the first case, each such summary only takes precipitation into\naccount, and tells how the intensity of precipitation will vary over the next\nhour or so.\n\nThe `DURATION`s listed above may be either of:\n\n* `[\"less-than\", [\"minutes\", 1]]` (\"less than a minute\")\n* `[\"minutes\", NUMBER]` (\"X minutes\")\n\n`\"for-hour\"`, `\"starting-in\"`, `\"stopping-in\"`,\n`\"starting-then-stopping-later\"`, `\"stopping-then-starting-later\"`, and\n`\"minutes\"` are only used as above. `\"less-than\"` is also used for snow\naccumulation (see below).\n\n### Day Summaries\n\nDay summaries are produced by the API when a duration of 24 hours is under\nconsideration (that is, `hourly.summary` and `daily.data[N].summary`). They are\nthe most complex summaries in the API, owing to the number of possible\ncombinations of the various terms. They are of the following formats:\n\n* `[\"sentence\", DAY_CONDITION_SUMMARY]`\n* `[\"sentence\", [\"and\", DAY_CONDITION_SUMMARY, DAY_CONDITION_SUMMARY]]`\n\n#### Day Condition Summaries\n\nA \"day condition\" represents a specific weather condition at a specific time of\nday. (Or a larger period of the day, as the case may be.)\n\n* `[\"for-day\", WEATHER_CONDITION]`\n* `[\"during\", WEATHER_CONDITION, TIME_OF_DAY]`\n* `[\"during\", WEATHER_CONDITION, [\"and\", TIME_OF_DAY, TIME_OF_DAY]]`\n* `[\"starting\", WEATHER_CONDITION, TIME_OF_DAY]`\n* `[\"until\", WEATHER_CONDITION, TIME_OF_DAY]`\n* `[\"starting-continuing-until\", WEATHER_CONDITION, TIME_OF_DAY, TIME_OF_DAY]`\n* `[\"until-starting-again\", WEATHER_CONDITION, TIME_OF_DAY, TIME_OF_DAY]`\n\n`\"for-day\"`, `\"starting\"`, `\"until\"`, `\"starting-continuing-until\"`, and\n`\"until-starting-again\"` are only used in the above manner, and may be\nconsidered analagous to the five similar cases in hourly summaries. `\"during\"`\nis used both here and in weekly summaries, below.\n\n#### Times of Day\n\nDaily summaries covering a specific day use the following time periods:\n\n* `\"morning\"`\n* `\"afternoon\"`\n* `\"evening\"`\n* `\"night\"`\n\nDaily summaries covering the next 24 hours (as in a forecast) use the following\ntime periods instead:\n\n* `\"today-morning\"`\n* `\"today-afternoon\"`\n* `\"today-evening\"`\n* `\"today-night\"`\n* `\"later-today-morning\"`\n* `\"later-today-afternoon\"`\n* `\"later-today-evening\"`\n* `\"later-today-night\"`\n* `\"tomorrow-morning\"`\n* `\"tomorrow-afternoon\"`\n* `\"tomorrow-evening\"`\n* `\"tomorrow-night\"`\n\nIn general, the most specific case is used. (For example, if it is currently\nafternoon and a weather condition would occur later in the afternoon,\n`\"later-today-afternoon\"` would be used. If it was any other time of day,\n`\"today-afternoon\"` would be used.)\n\nThe exact times that each duration begins or ends is not intended to be\ncritical, and nonprecise terminology should be used if possible. However, for\naid in translation, the time periods currently correspond to the following:\n\n* **morning:** 04:00 (4am) to 12:00 (12pm)\n* **afternoon:** 12:00 (12pm) to 17:00 (5pm)\n* **evening:** 17:00 (5pm) to 22:00 (10pm)\n* **night:** 22:00 (10pm) to 04:00 (4am)\n\n### Week Summaries\n\nFor summaries spanning an entire week (`daily.summary`), the following format\nis used:\n\n* `[\"sentence\", [\"with\", WEEKLY_PRECIPITATION_SUMMARY, WEEKLY_TEMPERATURE_SUMMARY]]`\n\nSince an entire week is a very broad span of time, we concern ourselves only\nwith the most broadly applicable information: which days will have rain, and\nhow the temperatures will fluctuate. The sentence is broken into two parts,\nwhich each comprise one of the above.\n\n`\"with\"` is not used in any other way.\n\n#### Weekly Precipitation Summary\n\nA \"weekly precipitation summary\" is used to describe which days of the week are\nexpected to have rain, as compactly as possible.\n\n* `[\"for-week\", PRECIPITATION_TYPE]`\n* `[\"over-weekend\", PRECIPITATION_TYPE]`\n* `[\"during\", PRECIPITATION_TYPE, DAY_OF_WEEK]`\n* `[\"during\", PRECIPITATION_TYPE, [\"and\", DAY_OF_WEEK, DAY_OF_WEEK]]`\n* `[\"during\", PRECIPITATION_TYPE, [\"through\", DAY_OF_WEEK, DAY_OF_WEEK]]`\n\n`\"for-week\"`, `\"over-weekend\"`, and `\"through\"` are both only used as above.\n`\"during\"` is used both here and in daily summaries.\n\n#### Weekly Temperature Summary\n\nA \"weekly temperature summary\" describes the general pattern of temperatures\nover the course of the next week: whether they'll get hotter, colder,\nhotter-then-colder, or colder-then-hotter.\n\n* `[\"temperatures-rising\", TEMPERATURE, DAY_OF_WEEK]`\n* `[\"temperatures-falling\", TEMPERATURE, DAY_OF_WEEK]`\n* `[\"temperatures-peaking\", TEMPERATURE, DAY_OF_WEEK]`\n* `[\"temperatures-valleying\", TEMPERATURE, DAY_OF_WEEK]`\n\n`\"temperatures-peaking\"`, `\"temperatures-valleying\"`, `\"temperatures-rising\"`,\nand `\"temperatures-falling\"` are all only used as above.\n\n#### Temperatures\n\n* `[\"fahrenheit\", NUMBER]`\n* `[\"celsius\", NUMBER]`\n\nEvery language should support both temperature units, as the choice of language\nand units are separate options in the API (and can be mixed-and-matched as\ndesired).\n\n#### Days of the Week\n\n* `\"today\"`\n* `\"tomorrow\"`\n* `\"sunday\"`\n* `\"monday\"`\n* `\"tuesday\"`\n* `\"wednesday\"`\n* `\"thursday\"`\n* `\"friday\"`\n* `\"saturday\"`\n* `\"next-sunday\"`\n* `\"next-monday\"`\n* `\"next-tuesday\"`\n* `\"next-wednesday\"`\n* `\"next-thursday\"`\n* `\"next-friday\"`\n* `\"next-saturday\"`\n\n`\"today\"` and `\"tomorrow\"` are used in preference to the other cases. The\n`\"next-*\"` cases are used when the day in question is a week from today (e.g.\nif today is Wednesday, and we expect rain a week from today, then the summary\nwould be `[\"during\", \"rain\", \"next-wednesday\"]`.\n\n### Weather Conditions\n\n#### Precipitation Types\n\n* `\"no-precipitation\"`: Represents no precipitation. Only used in \"weekly\n precipitation summary\" blocks. (This condition is in contrast to `\"clear\"`,\n which represents no significant weather of any kind.)\n* `\"mixed-precipitation\"`: Represents multiple types of precipitation, such\n as both rain and snow. Only used in \"weekly precipitation summary\" blocks;\n in all other cases, the predominate type of precipitation is used.\n* `GENERIC_TYPE`\n* `RAIN_TYPE`\n* `SLEET_TYPE`\n* `SNOW_TYPE`\n* `[\"parenthetical\", EXPECTED_PRECIP_TYPE, SNOW_ACCUMULATION]`: For daily or\n weekly summaries, if a significant amount of snow is expected, we will\n qualify it with the amount of expected snow accumulation. (For example,\n \"snow (3-4 in.) throughout the day\".) PLEASE NOTE that it is possible for a\n chance of snow accumulation to be forecasted even if the expected\n precipitation type is rain or sleet: this may occur if the forecasted\n temperature is right around the freezing point. Translations should clarify\n that the parenthetical refers to a chance of snow in such circumstances.\n (For example, \"sleet (chance of 3-4 in. of snow) throughout the day\".)\n\nIn each of the below precipitation types, the intensity of precipitation is\n(very approximately) as follows:\n\n* `\"very-light-X\"`: 0.02\u20130.4 mm/hr\n* `\"light-X\"`: 0.4\u20132.5 mm/hr\n* `\"medium-X\"`: 2.5\u201310 mm/hr\n* `\"heavy-X\"`: 10 mm/hr\n\nSnow intensities are (also very approximately) one-third of these. (That is,\n`\"heavy-snow\"` is more like 3 mm/hr.) However, these are only intended as a\nrough guide, as these values change over time as we fine-tune our system.\n\n##### Generic Types\n\nGeneric precipitation forms are used when we don't have information regarding\nthe exact type of precipitation expected. (This is a rare occurance.)\n\n* `\"possible-very-light-precipitation\"`\n* `\"very-light-precipitation\"`\n* `\"possible-light-precipitation\"`\n* `\"light-precipitation\"`\n* `\"medium-precipitation\"`\n* `\"heavy-precipitation\"`\n\n##### Rain Types\n\nRain precipitation forms represent liquid precipitation.\n\n* `\"possible-very-light-rain\"`\n* `\"very-light-rain\"`\n* `\"possible-light-rain\"`\n* `\"light-rain\"`\n* `\"medium-rain\"`\n* `\"heavy-rain\"`\n\n##### Sleet Types\n\nSleet precipitation forms represent sleet, freezing rain, or ice pellets, of\nthe sort that generally occur in winter when temperatures are around freezing.\n\n* `\"possible-very-light-sleet\"`\n* `\"very-light-sleet\"`\n* `\"possible-light-sleet\"`\n* `\"light-sleet\"`\n* `\"medium-sleet\"`\n* `\"heavy-sleet\"`\n\n##### Snow Types\n\nSnow precipitation forms represent solid precipitation in the form of\nsnowflakes.\n\n* `\"possible-very-light-snow\"`\n* `\"very-light-snow\"`\n* `\"possible-light-snow\"`\n* `\"light-snow\"`\n* `\"medium-snow\"`\n* `\"heavy-snow\"`\n\n##### Snow Accumulation\n\nRepresents a distance measurement indicating the amount of snow accumulation is\nexpected. These take the form of \"N inches\", \"< N inches\", or \"M-N inches\"\nin English, respectively.\n\n* `[\"inches\", NUMBER]`\n* `[\"less-than\", [\"inches\", 1]]`\n* `[\"inches\", [\"range\", NUMBER, NUMBER]]`\n* `[\"centimeters\", NUMBER]`\n* `[\"less-than\", [\"centimeters\", 1]]`\n* `[\"centimeters\", [\"range\", NUMBER, NUMBER]]`\n\n#### Other Weather Conditions\n\n* `\"clear\"`: Represents the lack of *any* significant weather occurring and cloud cover covering less than 11.5% of the sky.\n* `\"possible-thunderstorm\"`: Represents a chance of thunderstorms occurring.\n* `\"thunderstorm\"`: Represents thunderstorms occurring.\n* `\"light-wind\"`: Represents light wind at a location. (15 mph (~24.14 km/h) or greater)\n* `\"medium-wind\"`: Represents moderate wind at a location. (~22.37 mph (36 km/h) or greater)\n* `\"heavy-wind\"`: Represents strong wind at a location. (40 mph (~64.37 km/h) or greater)\n* `\"low-humidity\"`: Represents when the humidity is below 15%\n* `\"high-humidity\"`: Represents when the humidity is above 95% and the air temperature is above 20C (68F).\n* `\"fog\"`: Represents when there is less than approximately 0.62 miles (1 kilometers) of\n visibility.\n* `\"very-light-clouds\"`: Represents when clouds cover more less than 37.5% of the sky.\n (Usually called \"mostly clear\" in English.)\n* `\"light-clouds\"`: Represents when clouds cover more than than 37.5% but less than 62.5% of the sky.\n (Usually called \"partly cloudy\" in English.)\n* `\"medium-clouds\"`: Represents when clouds cover more than 62.5% (but not\n all) of the sky. (Usually called \"mostly cloudy\" in English.)\n* `\"heavy-clouds\"`: Represents complete (or nearly-complete) cloud cover.\n (Usually called \"overcast\" in English.)\n",
"bugtrack_url": null,
"license": "BSD 2-clause",
"summary": "Translate Pirate Weather API summaries into any language",
"version": "0.0.8",
"project_urls": {
"Download": "https://github.com/Pirate-Weather/translations/archive/0.0.8.tar.gz",
"Homepage": "https://github.com/Pirate-Weather/translations"
},
"split_keywords": [
"weather",
"api",
"pirateweather",
"translations"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b6e2eede698d623bfd016eb8ba934e29620d7070bc79ba085ed59e9cf9b79dfe",
"md5": "4e3190eca6be1d3c8c787b44df7301ee",
"sha256": "beee4611969b28b565d29794c066610b4a3adeb01e873d6846b9a9b6fc442729"
},
"downloads": -1,
"filename": "pirateweather_translations-0.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4e3190eca6be1d3c8c787b44df7301ee",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 137572,
"upload_time": "2025-01-16T21:21:24",
"upload_time_iso_8601": "2025-01-16T21:21:24.830896Z",
"url": "https://files.pythonhosted.org/packages/b6/e2/eede698d623bfd016eb8ba934e29620d7070bc79ba085ed59e9cf9b79dfe/pirateweather_translations-0.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f59c9b9938338e7d8934dc8edbce9d1d1fbec2ed61c62fffcc567309b3ef0d52",
"md5": "d643997e881da6785a667c7ddb3105b8",
"sha256": "46cd9791380ae9411b7f870a929bbb6b2047ef5ae4ad4f3249e41150e125fd3f"
},
"downloads": -1,
"filename": "pirateweather_translations-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "d643997e881da6785a667c7ddb3105b8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 90592,
"upload_time": "2025-01-16T21:21:27",
"upload_time_iso_8601": "2025-01-16T21:21:27.336783Z",
"url": "https://files.pythonhosted.org/packages/f5/9c/9b9938338e7d8934dc8edbce9d1d1fbec2ed61c62fffcc567309b3ef0d52/pirateweather_translations-0.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-16 21:21:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Pirate-Weather",
"github_project": "translations",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "ruff",
"specs": [
[
"==",
"0.9.1"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"8.3.4"
]
]
},
{
"name": "pytest-subtests",
"specs": [
[
"==",
"0.14.1"
]
]
},
{
"name": "coverage",
"specs": [
[
"==",
"7.6.10"
]
]
},
{
"name": "pytest-cov",
"specs": [
[
"==",
"6.0.0"
]
]
}
],
"lcname": "pirateweather-translations"
}