(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{365:function(t,s,e){"use strict";e.r(s);var a=e(25),n=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"setup-pipeline"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#setup-pipeline"}},[t._v("#")]),t._v(" Setup Pipeline")]),t._v(" "),e("p",[t._v("Set up your pipeline settings, below is a quote from cassiopeia's "),e("a",{attrs:{href:"http://cassiopeia.readthedocs.org/en/latest/",target:"_blank",rel:"noopener noreferrer"}},[t._v("documentation"),e("OutboundLink")],1),t._v(" explaning how cassiopeia's data pipeline works:")]),t._v(" "),e("blockquote",[e("p",[t._v("The data pipeline is the series of caches, databases, and data sources (such as the Riot API) that both provide and store data. Data sources provide data, while data sinks store data; we call both of these “data stores”. Some parts of the data pipeline are only data sources (for example, the Riot API), while others are both data sources and data sinks (for example, caches and databases). The data pipeline is a list of data stores, where the order the data stores specifies how data is pulled and stored (see the next paragraph). Usually faster data stores go at the beginning of the data pipeline.")])]),t._v(" "),e("blockquote",[e("p",[t._v("When data is queried, a query dictionary is constructed containing the information needed to uniquely identify an object in a data source (e.g. a region and summoner.id are required when querying for Summoner objects). This query is passed up the data pipeline through the data sources, and at each data source the data pipeline asks if that source can supply the requested object. If the source can supply the object (for example, if the object is in the database, or if the Riot API can send the object/data), it is returned. If the source does not supply the object, the next data source in the pipeline is queried. If no data source can provide an object for the query, a datapipelines.NotFoundError is thrown.")])]),t._v(" "),e("blockquote",[e("p",[t._v("After an object is returned by a data source, the object gets passed back down the pipeline. Any data sinks along the way store the object that was returned by the data source. In this way, the cache (which should be at the front of the data pipeline) will store any object that a database or the Riot API returned.")])]),t._v(" "),e("p",[t._v("The data pipeline used here is the same, but with the following changes:")]),t._v(" "),e("ul",[e("li",[t._v("Lot shorter syntax for expirations settings.")]),t._v(" "),e("li",[t._v("You can Log events that happens on the datastore.")]),t._v(" "),e("li",[t._v("A safe check lock is in place.")]),t._v(" "),e("li",[t._v("More datastores.")]),t._v(" "),e("li",[t._v("Better control.")])]),t._v(" "),e("h2",{attrs:{id:"set-your-pipeline-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#set-your-pipeline-settings"}},[t._v("#")]),t._v(" Set your pipeline settings")]),t._v(" "),e("p",[t._v("File: "),e("code",[t._v("settings.py")])]),t._v(" "),e("ul",[e("li",[e("p",[t._v("Settings Variable: "),e("code",[t._v("CASSIOPEIA_PIPELINE")])])]),t._v(" "),e("li",[e("p",[t._v("Usage: Define the structure of the pipeline.")])]),t._v(" "),e("li",[e("p",[t._v("Accepts: Dict")]),t._v(" "),e("blockquote",[e("p",[t._v("keys: Data Stores module name.")])]),t._v(" "),e("blockquote",[e("p",[t._v("values: dict of arguments or list of dict of arguments depending on the datastore specified.")])])]),t._v(" "),e("li",[e("p",[t._v("Default: No default, this settings is required otherwise an error is raised.")])])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("A list of datastores is "),e("a",{attrs:{href:"#data-stores"}},[t._v("later on the page")]),t._v(".")])]),t._v(" "),e("h3",{attrs:{id:"arguments"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#arguments"}},[t._v("#")]),t._v(" Arguments")]),t._v(" "),e("p",[t._v("The arguments accepted varies from the datastore used.")]),t._v(" "),e("ul",[e("li",[e("p",[e("code",[t._v('"ALIAS"')]),t._v(": str > The name identifying the datastore if the datastore accepts multiple instances.")])]),t._v(" "),e("li",[e("p",[e("code",[t._v('"SAFE_CHECK"')]),t._v(": bool > Raises an exception if some arguments are not optimal or safe to use, you can disable it by setting it to "),e("code",[t._v("False")]),t._v(", its not recommended unless you have a clear reason on doing it.")])]),t._v(" "),e("li",[e("p",[e("code",[t._v('"LOGS_ENABLED"')]),t._v(": bool > Enables or disable logs for datastore events.")])]),t._v(" "),e("li",[e("p",[e("code",[t._v('"MAX_ENTRIES"')]),t._v(": int > The maximum number of entries allowed in the datastore before old values are deleted, this is intended for datastore that cannot expire objects automatically on runtime.")])]),t._v(" "),e("li",[e("p",[e("code",[t._v('"CULL_FRECUENCY"')]),t._v(": int > The fraction of entries that are culled when "),e("code",[t._v('"MAX_ENTRIES"')]),t._v(" is reached. The actual ratio is 1 / n, where n is your value, so by setting it to 2 will cull half the entries when "),e("code",[t._v('"MAX_ENTRIES"')]),t._v(" is reached.")])]),t._v(" "),e("li",[e("p",[e("code",[t._v('"EXPIRATIONS_MAP"')]),t._v(": dict > Object specifying the expirations (if the datastore is a cache) for each cassiopeia object, some datastores supports "),e("code",[t._v("cassiopeia.core")]),t._v(" objects, and others supports "),e("code",[t._v("cassiopeia.dto")]),t._v(" objects. Most time you would combine them to give you better performance. Unlike "),e("code",[t._v('"expirations"')]),t._v(" settings in cassiopeia, here you're gonna deal with a lot shorter version of it. Example:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" datetime "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" timedelta "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" td\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("#... more settings")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"EXPIRATIONS_MAP"')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hours"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"r"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"r+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cr"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pi"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pi+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hours"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"rl"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"v"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ss"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ss+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mp"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mp+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ls"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ls+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"*+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("   "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# All remaining core objects")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("Below is a table with the abbrs for each object and type, they follow a similar convention but not limited to: it takes the inicials of the object's name, a "),e("code",[t._v("+")]),t._v(" at the end means it contains a group (e.g. "),e("code",[t._v("Item")]),t._v(" and "),e("code",[t._v("Items")]),t._v(" -> "),e("code",[t._v('"i"')]),t._v(" and "),e("code",[t._v('"i+"')]),t._v("), a "),e("code",[t._v("-")]),t._v(" at the end means it is of type "),e("code",[t._v("dto")]),t._v(", "),e("code",[t._v("+-")]),t._v(" at the end means it is a "),e("code",[t._v("dto")]),t._v(" that contains a group, "),e("code",[t._v("**")]),t._v(" for all the remaining objects, "),e("code",[t._v("*+")]),t._v(" means all the remaining "),e("code",[t._v("core")]),t._v(" objects, and "),e("code",[t._v("*-")]),t._v(" for all the remaining "),e("code",[t._v("dto")]),t._v(" objects. There are some exceptions with objects that has same inicials (e.g. "),e("code",[t._v("Realms")]),t._v("("),e("code",[t._v("rl")]),t._v(") and "),e("code",[t._v("Rune")]),t._v("("),e("code",[t._v("r")]),t._v(")).")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Abbr")]),t._v(" "),e("th",[t._v("Object")]),t._v(" "),e("th",[t._v("type")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v('"cr"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionRotationData")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"rl"')])]),t._v(" "),e("td",[e("code",[t._v("Realms")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"v"')])]),t._v(" "),e("td",[e("code",[t._v("Versions")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"c"')])]),t._v(" "),e("td",[e("code",[t._v("Champion")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"c+"')])]),t._v(" "),e("td",[e("code",[t._v("Champions")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"r"')])]),t._v(" "),e("td",[e("code",[t._v("Rune")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"r+"')])]),t._v(" "),e("td",[e("code",[t._v("Runes")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"i"')])]),t._v(" "),e("td",[e("code",[t._v("Item")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"i+"')])]),t._v(" "),e("td",[e("code",[t._v("Items")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ss"')])]),t._v(" "),e("td",[e("code",[t._v("SummonerSpell")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ss+"')])]),t._v(" "),e("td",[e("code",[t._v("SummonerSpells")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"mp"')])]),t._v(" "),e("td",[e("code",[t._v("Map")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"mp+"')])]),t._v(" "),e("td",[e("code",[t._v("Maps")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"pi"')])]),t._v(" "),e("td",[e("code",[t._v("ProfileIcon")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"pi+"')])]),t._v(" "),e("td",[e("code",[t._v("ProfileIcons")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ls"')])]),t._v(" "),e("td",[e("code",[t._v("Locales")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ls+"')])]),t._v(" "),e("td",[e("code",[t._v("LanguageStrings")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cm"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionMastery")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cm+"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionMasteries")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"lse"')])]),t._v(" "),e("td",[e("code",[t._v("LeagueSummonerEntries")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"l"')])]),t._v(" "),e("td",[e("code",[t._v("League")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cl"')])]),t._v(" "),e("td",[e("code",[t._v("ChallengerLeague")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"gl"')])]),t._v(" "),e("td",[e("code",[t._v("GrandmasterLeague")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ml"')])]),t._v(" "),e("td",[e("code",[t._v("MasterLeague")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"m"')])]),t._v(" "),e("td",[e("code",[t._v("Match")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"t"')])]),t._v(" "),e("td",[e("code",[t._v("Timeline")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"s"')])]),t._v(" "),e("td",[e("code",[t._v("Summoner")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"shs"')])]),t._v(" "),e("td",[e("code",[t._v("ShardStatus")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cg"')])]),t._v(" "),e("td",[e("code",[t._v("CurrentMatch")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"fg"')])]),t._v(" "),e("td",[e("code",[t._v("FeaturedMatches")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"rl-"')])]),t._v(" "),e("td",[e("code",[t._v("RealmDto")])]),t._v(" "),e("td",[e("code",[t._v("core")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"v-"')])]),t._v(" "),e("td",[e("code",[t._v("VersionListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"c-"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"c+-"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"r-"')])]),t._v(" "),e("td",[e("code",[t._v("RuneDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"r+-"')])]),t._v(" "),e("td",[e("code",[t._v("RuneListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"i-"')])]),t._v(" "),e("td",[e("code",[t._v("ItemDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"i+-"')])]),t._v(" "),e("td",[e("code",[t._v("ItemListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ss-"')])]),t._v(" "),e("td",[e("code",[t._v("SummonerSpellDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ss+-"')])]),t._v(" "),e("td",[e("code",[t._v("SummonerSpellListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"mp-"')])]),t._v(" "),e("td",[e("code",[t._v("MapDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"mp+-"')])]),t._v(" "),e("td",[e("code",[t._v("MapListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"pi-"')])]),t._v(" "),e("td",[e("code",[t._v("ProfileIconDetailsDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"pi+-"')])]),t._v(" "),e("td",[e("code",[t._v("ProfileIconDataDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ls-"')])]),t._v(" "),e("td",[e("code",[t._v("LanguagesDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ls+-"')])]),t._v(" "),e("td",[e("code",[t._v("LanguageStringsDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cr-"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionRotationDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cm-"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionMasteryDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cm+-"')])]),t._v(" "),e("td",[e("code",[t._v("ChampionMasteryListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cl-"')])]),t._v(" "),e("td",[e("code",[t._v("ChallengerLeagueListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"gl-"')])]),t._v(" "),e("td",[e("code",[t._v("GrandmasterLeagueListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"ml-"')])]),t._v(" "),e("td",[e("code",[t._v("MasterLeagueListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"m-"')])]),t._v(" "),e("td",[e("code",[t._v("MatchDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"t-"')])]),t._v(" "),e("td",[e("code",[t._v("TimelineDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"s-"')])]),t._v(" "),e("td",[e("code",[t._v("SummonerDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"shs-"')])]),t._v(" "),e("td",[e("code",[t._v("ShardStatusDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"cg-"')])]),t._v(" "),e("td",[e("code",[t._v("CurrentGameInfoDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"fg-"')])]),t._v(" "),e("td",[e("code",[t._v("FeaturedGamesDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"p-"')])]),t._v(" "),e("td",[e("code",[t._v("PatchListDto")])]),t._v(" "),e("td",[e("code",[t._v("dto")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"*-"')])]),t._v(" "),e("td",[t._v("Remaining of all "),e("code",[t._v("dto")]),t._v(" objects")]),t._v(" "),e("td")]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"*+"')])]),t._v(" "),e("td",[t._v("Remaining of all "),e("code",[t._v("core")]),t._v(" objects")]),t._v(" "),e("td")]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"**"')])]),t._v(" "),e("td",[t._v("Remaining of all objects")]),t._v(" "),e("td")])])])])]),t._v(" "),e("h2",{attrs:{id:"data-stores"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-stores"}},[t._v("#")]),t._v(" Data Stores")]),t._v(" "),e("p",[t._v("A list of datastores that comes with Django Cassiopeia.")]),t._v(" "),e("h3",{attrs:{id:"omnistone"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#omnistone"}},[t._v("#")]),t._v(" Omnistone")]),t._v(" "),e("p",[e("strong",[e("em",[t._v("Added in 2.0:")])]),t._v(" Due to some memory issues (specially that rows were not expiring correctly) caused by cassiopeia's "),e("code",[t._v("Cache")]),t._v(" datastore during beta test, "),e("code",[t._v("Omnistone")]),t._v(" is a refined version of "),e("code",[t._v("Cache")]),t._v(" that fixes this issue. The issues were known before the first test release, it was ignored due to the existence of Django's Cache which was supposed to be its replacement, but the fact that Django's Cache cannot store "),e("code",[t._v("core")]),t._v(" objects were slowing down significantly the performance time, and ... "),e("code",[t._v("Omnistone")]),t._v(" is here lol.")]),t._v(" "),e("ul",[e("li",[t._v("Description: This is a cache as a python object that lives on memory ONLY on server runtime, speeding up performance significantly by temporary caching "),e("code",[t._v("cassiopeia.core")]),t._v(" objects, thus avoid using transformers and extra pulls. It will automatically cull the cache when a maximum entries provided in arguments is hit. This should be the first datastore in the pipeline.")]),t._v(" "),e("li",[t._v("Purpose: Fixing memory issues caused by "),e("code",[t._v("Cache")]),t._v(" while keeping performance.")]),t._v(" "),e("li",[t._v("Supports multiple instances: No.")]),t._v(" "),e("li",[t._v("Object type supported: "),e("code",[t._v("cassiopeia.core")])]),t._v(" "),e("li",[t._v("Recommended placement on pipeline: The very first.")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Arguments")]),t._v(" "),e("th",[t._v("Default")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v('"MAX_ENTRIES"')])]),t._v(" "),e("td",[t._v("6000")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"CULL_FRECUENCY"')])]),t._v(" "),e("td",[t._v("2")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"SAFE_CHECK"')])]),t._v(" "),e("td",[e("code",[t._v("True")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"LOGS_ENABLED"')])]),t._v(" "),e("td",[e("code",[t._v("False")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"EXPIRATIONS_MAP"')])]),t._v(" "),e("td",[e("code",[t._v('{ td(hours=3): ["c", "c+", "r", "r+", "cr", "i", "i+", "pi", "pi+"], td(hours=6): ["rl", "v", "ss", "ss+", "mp", "mp+", "ls", "ls+"], 0: ["*+"] }')])])])])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("INFO")]),t._v(" "),e("p",[t._v("This datastore will shut down along with the Django's server, so it is not recommended to cache static data such as "),e("code",[t._v("Match")]),t._v(", "),e("code",[t._v("Timeline")]),t._v(" or "),e("code",[t._v("Summoner")]),t._v(", which might actually impact a bit in performance.")]),t._v(" "),e("p",[t._v("The preferable way to use this datastore is to combine with datastore that doesn't shut down with server (Database, Filebased, in Memory), so the flow would be like follow: look at "),e("code",[t._v("core")]),t._v(" in "),e("code",[t._v("Omnistone")]),t._v(" and not found, look at "),e("code",[t._v("dto")]),t._v(" in "),e("code",[t._v("DjangoCache")]),t._v(" and found, now populate "),e("code",[t._v("Omnistone")]),t._v(" using "),e("code",[t._v("core")]),t._v(", the next time being pulled will pull the "),e("code",[t._v("core")]),t._v(" in "),e("code",[t._v("Omnistone")]),t._v(" which is aprox. 5x faster.")])]),t._v(" "),e("h3",{attrs:{id:"djangocache"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#djangocache"}},[t._v("#")]),t._v(" DjangoCache")]),t._v(" "),e("ul",[e("li",[t._v("Description: This datastore uses the Django's low-level cache API, that lets you cache "),e("code",[t._v("cassiopeia.dto")]),t._v(" objects to any cache backend that works on Django.")]),t._v(" "),e("li",[t._v("Purpose: Add the possibility to use the numerous flexible and production-tested caches available.")]),t._v(" "),e("li",[t._v("Supports multiple instances: Yes, so its argument will take a list of dicts.")]),t._v(" "),e("li",[t._v("Object type supported: "),e("code",[t._v("cassiopeia.dto")])]),t._v(" "),e("li",[t._v("Recommended placement on pipeline: After "),e("code",[t._v("Omnistone")]),t._v(".")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Arguments")]),t._v(" "),e("th",[t._v("Default")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v('"ALIAS"')])]),t._v(" "),e("td",[t._v("No default, required otherwise raise error.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"SAFE_CHECK"')])]),t._v(" "),e("td",[e("code",[t._v("True")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"LOGS_ENABLED"')])]),t._v(" "),e("td",[e("code",[t._v("False")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v('"EXPIRATIONS_MAP"')])]),t._v(" "),e("td",[e("code",[t._v('{ td(hours=6): ["rl-", "v-", "cr-", "cm-", "cm+-", "cl-", "gl-", "ml-"], td(days=7): ["mp-", "mp+-", "ls-", "ls+-", "t-", \'m-\'], td(days=1): ["c-", "c+-", "r-", "r+-", "i-", "i+-", "ss-", "ss+-", "pi-", "pi+-", "p-"], td(minutes=15): ["cg-", "fg-", "shs-", "s-"], 0: ["*-"] }')])])])])]),t._v(" "),e("p",[t._v("A Django Caches settings is needed, for more information please read Django's official Cache Framework "),e("a",{attrs:{href:"https://docs.djangoproject.com/en/dev/topics/cache/",target:"_blank",rel:"noopener noreferrer"}},[t._v("documentation"),e("OutboundLink")],1),t._v(", for example:")]),t._v(" "),e("p",[e("strong",[t._v("Highlighted lines are cache's name, these are the "),e("code",[t._v('"ALIAS"')]),t._v(" used when you define in your pipeline's settings.")])]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("div",{staticClass:"highlight-lines"},[e("br"),e("br"),e("br"),e("br"),e("br"),e("div",{staticClass:"highlighted"},[t._v(" ")]),e("br"),e("br"),e("br"),e("br"),e("br"),e("br"),e("br"),e("br"),e("div",{staticClass:"highlighted"},[t._v(" ")]),e("br"),e("br"),e("br"),e("br"),e("br"),e("br")]),e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("CACHES "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'default'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("  "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Do not use it for ALIAS")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'BACKEND'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'django.core.cache.backends.memcached.MemcachedCache'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'LOCATION'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'127.0.0.1:11211'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cass-redis"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"BACKEND"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"django_redis.cache.RedisCache"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"LOCATION"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis://127.0.0.1:6379/1"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"OPTIONS"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CLIENT_CLASS"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"django_redis.client.DefaultClient"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"PICKLE_VERSION"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COMPRESSOR"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"django_redis.compressors.lz4.Lz4Compressor"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'filebased'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'BACKEND'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'django.core.cache.backends.filebased.FileBasedCache'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'LOCATION'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" os"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("path"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("join"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("BASE_DIR"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'filebased-cache'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'MAX_ENTRIES'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("details",{staticClass:"custom-block details"},[e("summary",[t._v("Click to see details of this code.")]),t._v(" "),e("p",[t._v("Here we set up django_redis cache backend that uses lz4 compression before saving it to redis database, and a filebased cache that handles a maximum of 10000 files before culling.")])]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("You should ALWAYS leave "),e("code",[t._v("default")]),t._v(" cache for handling caching for your app.")])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("ul",[e("li",[t._v("Use this datastore combined with "),e("code",[t._v("Omnistone")]),t._v(" for better performance.")]),t._v(" "),e("li",[e("code",[t._v("MatchHistory")]),t._v(" is bugged on the API side, thus to avoid unexpected results, this is not sinked into this datastore. Match Histories is in constant change anyways, to prevent abuse in client side you can set a limiter or throttling in DRF.")])])]),t._v(" "),e("h3",{attrs:{id:"ddragon"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ddragon"}},[t._v("#")]),t._v(" DDragon")]),t._v(" "),e("ul",[e("li",[t._v("Description: This is a pure datasource that serves data from the League of Legends' Data Dragon.")]),t._v(" "),e("li",[t._v("Supports multiple instances: No.")]),t._v(" "),e("li",[t._v("Object type supported: "),e("code",[t._v("cassiopeia.dto")])]),t._v(" "),e("li",[t._v("Recommended placement on pipeline: After any cache and before "),e("code",[t._v("RiotAPI")]),t._v(".")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Arguments")]),t._v(" "),e("th",[t._v("Default")])])]),t._v(" "),e("tbody")]),t._v(" "),e("p",[t._v("Does not accept any arguments.")]),t._v(" "),e("h3",{attrs:{id:"riotapi"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#riotapi"}},[t._v("#")]),t._v(" RiotAPI")]),t._v(" "),e("ul",[e("li",[t._v("Description: This is a pure datasource that serves League of Legends data from the Riot API.")]),t._v(" "),e("li",[t._v("Supports multiple instances: No.")]),t._v(" "),e("li",[t._v("Object type supported: "),e("code",[t._v("cassiopeia.dto")])]),t._v(" "),e("li",[t._v("Recommended placement on pipeline: The very end.")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Arguments")]),t._v(" "),e("th",[t._v("Default")])])]),t._v(" "),e("tbody")]),t._v(" "),e("p",[t._v("Does not accept any arguments.")]),t._v(" "),e("p",[e("em",[t._v("Unlike cassiopeia, you already set these arguments in "),e("code",[t._v('"CASSIOPEIA_RIOT_API_KEY"')]),t._v(", "),e("code",[t._v('"CASSIOPEIA_LIMITING_SHARE"')]),t._v(" and "),e("code",[t._v('"CASSIOPEIA_API_ERROR_HANDLING"')]),t._v(".")])]),t._v(" "),e("h3",{attrs:{id:"cache-deprecated"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cache-deprecated"}},[t._v("#")]),t._v(" Cache (Deprecated)")]),t._v(" "),e("ul",[e("li",[t._v("Description: Original Cache system used and using by cassiopeia.")]),t._v(" "),e("li",[t._v("Supports multiple instances: No.")]),t._v(" "),e("li",[t._v("Object type supported: "),e("code",[t._v("cassiopeia.core")])]),t._v(" "),e("li",[t._v("Recommended placement on pipeline: The very first.")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Arguments")]),t._v(" "),e("th",[t._v("Default")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v('"EXPIRATIONS_MAP"')])]),t._v(" "),e("td",[t._v("The default expirations can be found in cassiopeia's "),e("a",{attrs:{href:"https://cassiopeia.readthedocs.io/en/latest/datapipeline.html#in-memory-cache",target:"_blank",rel:"noopener noreferrer"}},[t._v("documentations"),e("OutboundLink")],1)])])])]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("You should not use this datastore unless a reason is given (to yourself).\nIt does not automatically delete objects after it is expired, which might cause memory issues in some cases.\nThe refined version of this datastore is "),e("a",{attrs:{href:"#omnistone"}},[e("code",[t._v("Omnistone")])]),t._v(".")])]),t._v(" "),e("h2",{attrs:{id:"example-pipeline-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#example-pipeline-settings"}},[t._v("#")]),t._v(" Example pipeline settings")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("CASSIOPEIA_PIPELINE "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Omnistone"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"EXPIRATIONS_MAP"')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n            td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hours"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"r"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"r+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cr"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pi"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pi+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hours"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"rl"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"v"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ss"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ss+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mp"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mp+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ls"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ls+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"*+"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"MAX_ENTRIES"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("6000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"CULL_FRECUENCY"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SAFE_CHECK"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("True")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"LOGS_ENABLED"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("False")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"DjangoCache"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ALIAS"')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cass-redis"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"EXPIRATIONS_MAP"')]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n                td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("hours"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"rl-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"v-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cr-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cm-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cm+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cl-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"gl-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ml-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("days"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mp-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mp+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ls-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ls+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"t-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'m-'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("minutes"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cg-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fg-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"shs-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"s-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"*-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SAFE_CHECK"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("True")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"LOGS_ENABLED"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("False")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ALIAS"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"filebased"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"EXPIRATIONS_MAP"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n                td"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("days"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"r-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"r+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ss-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ss+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pi-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"pi+-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"*-"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SAFE_CHECK"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("True")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"LOGS_ENABLED"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("False")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"DDragon"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"RiotAPI"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("During development, you can set "),e("code",[t._v('"LOGS_ENABLED"')]),t._v(" to "),e("code",[t._v("True")]),t._v(" for debugging or to see if your objects are caching the way you expected, if it is not, make sure to double check the spelling (or submit an issue on github).")])])])}),[],!1,null,null,null);s.default=n.exports}}]);