Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

figgy.python.lib

Contains a public python library that may be used with Figgy to simply application config management.

Start using figgy today: https://www.figgy.dev

Check out the detailed docs: https://www.figgy.dev/docs/

Demonstration & Walkthrough of how to use this library: https://github.com/figtools/figgy.python-reference

Using figgy.lib

This library greatly simplifies the process of fetching / using configurations from ParameterStore and is designed to be used alongside the larger figgy ecosystem and will. For more details on what Figgy offers check out the Figgy Website.

To the this lib to import parameters from parameter store:

Define your configurations

What's a Fig?

# config.pyfromfiggy.figsimport*fromfiggy.fig_storeimportFigStore# All PS configurations are defined in our FigStoreclassFigs(FigStore):
# Twig = Application's namespaceTWIG: str="/app/foo-service"# Custom Figs specific to my application (app figs)SECRET_ADMIRER=AppFig("secret-admirer") # Expected to be found at /app/foo-service/secret-admirerADMIRED_PERSON=AppFig("admired-person") # Expected to be found at /app/foo-service/admired-personSQL_DB_NAME=AppFig("db-name", default="SecretAdmirerDB")
# Figs shared by secret owners (shared figs)SQL_USER=SharedFig("replicated/sql/user") # Expected to be found at /app/foo-service/replicated/sql/userSQL_PASSWORD=SharedFig("replicated/sql/password")
# Global figs used by many services that we need to use (replicated figs)SQL_HOSTNAME=ReplicatedFig(source="/shared/resources/dbs/fig-db/dns", name="replicated/sql/hostname")
SQL_PORT=ReplicatedFig(source="/shared/resources/dbs/fig-db/port", name="replicated/sql/port")
# Merged Connection URL (merged figs)SQL_CONNECTION_STRING=MergeFig(
name="replicated/sql-connection",
pattern=["mysql://", SQL_USER, ":", SQL_PASSWORD, "@", SQL_HOSTNAME, ":", SQL_PORT, "/", SQL_DB_NAME]
)

Import the library

# main.pyimportboto3fromfiggyimportFigService, ConfigWriterfromconfigimportFigsssm=boto3.client('ssm', region_name='us-east-1')
svc=FigService(ssm)
FIGS=Figs(svc, lazy_load=False) # Lazy-load will fetch figs from PS as needed instead of at application bootstrap# Optional, but recommended. Have your `figgy.json` written to your run-directory. This will keep your application's# used configs in sync with remote configurations.ConfigWriter().write(FIGS)
## Use a configurationprint(f"Hello {FIGS.ADMIRED_PERSON}, {FIGS.SECRET_ADMIRER} is admiring you!")
print(f"Found Merged SQL Connection String: {FIGS.SQL_CONNECTION_STRING}")

If you run your APP and receive an error indicating a parameter is missing, run figgy config sync --config figgy.json where the figgy.json is the path to the generated figgy.json file.

Override with ENV variables

Any and all configurations can be overridden locally through ENV variables.

Suppose your:

TWIG = /app/foo FIG1 = fig1 DB_PASS = replicated/db/password

To override these values with the follow ENV variables. The TWIG (namespace) should be left out of the fig name:

 export FIG1=foobar export REPLICATED_DB_PASSWORD=p@ssw0rd!!

These will automatically take precedent during configuration resolution. ParameterStore will never be queried for these parameters.

About

Contains a public python library that may be used be Figgy users to simply application config management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages