Add: "Using Static Data" guide#283
Conversation
+ minor fix to system-security.md
|
Very nice work! Thank you for taking this on! My only comment is in the Python snippet, as that isnt completely how typeLists work. I will give some example code Monday about that if nobody did so before me :) Btw tldr, an item in the includedTypes but in the excludedGroup is still on the list. Worded differently: includedTypes wins from excludedGroups, and includedGroups wins from excludedCategoried. But it might be easier to understand with code :) Edit: on second look, it might just be easier to give an example how to resolve all types in a typeList, rather than "is this type in the list". That might be the more common case people will work from. And makes checking for items in a list more trivial. |
| A TypeList consists of a set of included Categories, Groups, and Types, and a set of excluded Categories, Groups, and Types. A given type is included in a typelist if any of the following match: | ||
|
|
||
| * The type's categoryID is included in `includedCategoryIDs` but not in `excludedCategoryIDs` and the type's groupID and typeID are not in `excludedGroupIDs` and `excludedTypeIDs` respectively. | ||
| * The type's groupID is included in `includedGroupIDs` but not in `excludedGroupIDs` and the type's typeID is not in `excludedTypeIDs` | ||
| * The type's typeID is included in `includedTypeIDs` but not in `excludedTypeIDs` |
There was a problem hiding this comment.
| A TypeList consists of a set of included Categories, Groups, and Types, and a set of excluded Categories, Groups, and Types. A given type is included in a typelist if any of the following match: | |
| * The type's categoryID is included in `includedCategoryIDs` but not in `excludedCategoryIDs` and the type's groupID and typeID are not in `excludedGroupIDs` and `excludedTypeIDs` respectively. | |
| * The type's groupID is included in `includedGroupIDs` but not in `excludedGroupIDs` and the type's typeID is not in `excludedTypeIDs` | |
| * The type's typeID is included in `includedTypeIDs` but not in `excludedTypeIDs` | |
| A TypeList consists of a set of included Categories, Groups, and Types, and a set of excluded Categories, Groups, and Types. To get the full list of all types in a TypeList, do the following (in this order): | |
| * Add all items with a category in `includedCategoryIDs` to the list. | |
| * Remove all items with a category in `excludedCategoriesIDs` from the list. | |
| * Add all items with a group in `includedGroupIDs` to the list. | |
| * Remove all items with a group in `excludedGroupIDs` from the list. | |
| * Add all items in `includedTypeIDs` to the list. | |
| * Remove all items in `excludedTypeIDs` from the list. |
In other words, it is not "include - exclude", but it is "((typesInIncludedCategory - typesInExcludedCategory + typesInIncludedGroup) - typesInExcludedGroup + includedType) - excludedType". And there is a fundamental difference. For example, this is possible:
Typelist contains category A, but excludes A.b, but includes A.b.587
(where A.b is a group within category A, and A.b.587 is an item within group A.b.)
The way you describe it, that won't be possible. I have no clue if such an inclusion/exclusion/inclusion pair is used, so in effect your description might have an identical result. However, that is not how typelists work.
There was a problem hiding this comment.
Ah, that's an oversight on my part, I did not intend that difference and didn't check whether the edge cases apply. Slipped in when trying to build the explanation around the example.
There was a problem hiding this comment.
Other ideas that occurred to me:
In functional/transform style:
result =
includedCategoryTypes
- excludedCategoryTypes
+ includedGroupTypes
- excludedGroupTypes
+ includedTypes
- excludedTypes
Or math-like:
The current info page for the Static Data Export, under 'Services and Resources' has a few tips.
Adding more of these probably warrants such guides/tips/other info being split off into a dedicated page under 'Guides and Examples'
This PR is a first draft at such a page, migrating the "Celestial Names" guide and "Security Offices" tip into the new "Using Static Data" guide, and adding new sections on TypeLists, Remote Skill injection/"Skills on Demand", and the usage of data relating to wormhole systems.
Proposed scope would be small guides for things that are unintuitive about the static data because of unstated logic or "magic constants" that cannot be derived from the SDE.
This PR also includes a slight tweak to the 'System Security' page, clarifying that page's applicability to both ESI and SDE.
Specific feedback requests: