+
+ Read the Docs
+ v: ${config.versions.current.slug}
+
+
+
+
+ ${renderLanguages(config)}
+ ${renderVersions(config)}
+ ${renderDownloads(config)}
+
+ On Read the Docs
+
+ Project Home
+
+
+ Builds
+
+
+ Downloads
+
+
+
+ Search
+
+
+
+
+
+
+ Hosted by Read the Docs
+
+
+
+ `;
+
+ // Inject the generated flyout into the body HTML element.
+ document.body.insertAdjacentHTML("beforeend", flyout);
+
+ // Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout.
+ document
+ .querySelector("#flyout-search-form")
+ .addEventListener("focusin", () => {
+ const event = new CustomEvent("readthedocs-search-show");
+ document.dispatchEvent(event);
+ });
+ })
+}
+
+if (themeLanguageSelector || themeVersionSelector) {
+ function onSelectorSwitch(event) {
+ const option = event.target.selectedIndex;
+ const item = event.target.options[option];
+ window.location.href = item.dataset.url;
+ }
+
+ document.addEventListener("readthedocs-addons-data-ready", function (event) {
+ const config = event.detail.data();
+
+ const versionSwitch = document.querySelector(
+ "div.switch-menus > div.version-switch",
+ );
+ if (themeVersionSelector) {
+ let versions = config.versions.active;
+ if (config.versions.current.hidden || config.versions.current.type === "external") {
+ versions.unshift(config.versions.current);
+ }
+ const versionSelect = `
+
+ ${versions
+ .map(
+ (version) => `
+
+ ${version.slug}
+ `,
+ )
+ .join("\n")}
+
+ `;
+
+ versionSwitch.innerHTML = versionSelect;
+ versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
+ }
+
+ const languageSwitch = document.querySelector(
+ "div.switch-menus > div.language-switch",
+ );
+
+ if (themeLanguageSelector) {
+ if (config.projects.translations.length) {
+ // Add the current language to the options on the selector
+ let languages = config.projects.translations.concat(
+ config.projects.current,
+ );
+ languages = languages.sort((a, b) =>
+ a.language.name.localeCompare(b.language.name),
+ );
+
+ const languageSelect = `
+
+ ${languages
+ .map(
+ (language) => `
+
+ ${language.language.name}
+ `,
+ )
+ .join("\n")}
+
+ `;
+
+ languageSwitch.innerHTML = languageSelect;
+ languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
+ }
+ else {
+ languageSwitch.remove();
+ }
+ }
+ });
+}
+
+document.addEventListener("readthedocs-addons-data-ready", function (event) {
+ // Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav.
+ document
+ .querySelector("[role='search'] input")
+ .addEventListener("focusin", () => {
+ const event = new CustomEvent("readthedocs-search-show");
+ document.dispatchEvent(event);
+ });
+});
\ No newline at end of file
diff --git a/_static/language_data.js b/_static/language_data.js
new file mode 100644
index 00000000..c7fe6c6f
--- /dev/null
+++ b/_static/language_data.js
@@ -0,0 +1,192 @@
+/*
+ * This script contains the language-specific data used by searchtools.js,
+ * namely the list of stopwords, stemmer, scorer and splitter.
+ */
+
+var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
+
+
+/* Non-minified version is copied as a separate JS file, if available */
+
+/**
+ * Porter Stemmer
+ */
+var Stemmer = function() {
+
+ var step2list = {
+ ational: 'ate',
+ tional: 'tion',
+ enci: 'ence',
+ anci: 'ance',
+ izer: 'ize',
+ bli: 'ble',
+ alli: 'al',
+ entli: 'ent',
+ eli: 'e',
+ ousli: 'ous',
+ ization: 'ize',
+ ation: 'ate',
+ ator: 'ate',
+ alism: 'al',
+ iveness: 'ive',
+ fulness: 'ful',
+ ousness: 'ous',
+ aliti: 'al',
+ iviti: 'ive',
+ biliti: 'ble',
+ logi: 'log'
+ };
+
+ var step3list = {
+ icate: 'ic',
+ ative: '',
+ alize: 'al',
+ iciti: 'ic',
+ ical: 'ic',
+ ful: '',
+ ness: ''
+ };
+
+ var c = "[^aeiou]"; // consonant
+ var v = "[aeiouy]"; // vowel
+ var C = c + "[^aeiouy]*"; // consonant sequence
+ var V = v + "[aeiou]*"; // vowel sequence
+
+ var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
+ var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
+ var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
+ var s_v = "^(" + C + ")?" + v; // vowel in stem
+
+ this.stemWord = function (w) {
+ var stem;
+ var suffix;
+ var firstch;
+ var origword = w;
+
+ if (w.length < 3)
+ return w;
+
+ var re;
+ var re2;
+ var re3;
+ var re4;
+
+ firstch = w.substr(0,1);
+ if (firstch == "y")
+ w = firstch.toUpperCase() + w.substr(1);
+
+ // Step 1a
+ re = /^(.+?)(ss|i)es$/;
+ re2 = /^(.+?)([^s])s$/;
+
+ if (re.test(w))
+ w = w.replace(re,"$1$2");
+ else if (re2.test(w))
+ w = w.replace(re2,"$1$2");
+
+ // Step 1b
+ re = /^(.+?)eed$/;
+ re2 = /^(.+?)(ed|ing)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ re = new RegExp(mgr0);
+ if (re.test(fp[1])) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ }
+ else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1];
+ re2 = new RegExp(s_v);
+ if (re2.test(stem)) {
+ w = stem;
+ re2 = /(at|bl|iz)$/;
+ re3 = new RegExp("([^aeiouylsz])\\1$");
+ re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re2.test(w))
+ w = w + "e";
+ else if (re3.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ else if (re4.test(w))
+ w = w + "e";
+ }
+ }
+
+ // Step 1c
+ re = /^(.+?)y$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(s_v);
+ if (re.test(stem))
+ w = stem + "i";
+ }
+
+ // Step 2
+ re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem))
+ w = stem + step2list[suffix];
+ }
+
+ // Step 3
+ re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem))
+ w = stem + step3list[suffix];
+ }
+
+ // Step 4
+ re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+ re2 = /^(.+?)(s|t)(ion)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ if (re.test(stem))
+ w = stem;
+ }
+ else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1] + fp[2];
+ re2 = new RegExp(mgr1);
+ if (re2.test(stem))
+ w = stem;
+ }
+
+ // Step 5
+ re = /^(.+?)e$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ re2 = new RegExp(meq1);
+ re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
+ w = stem;
+ }
+ re = /ll$/;
+ re2 = new RegExp(mgr1);
+ if (re.test(w) && re2.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+
+ // and turn initial Y back to y
+ if (firstch == "y")
+ w = firstch.toLowerCase() + w.substr(1);
+ return w;
+ }
+}
+
diff --git a/_static/minus.png b/_static/minus.png
new file mode 100644
index 00000000..d96755fd
Binary files /dev/null and b/_static/minus.png differ
diff --git a/_static/plus.png b/_static/plus.png
new file mode 100644
index 00000000..7107cec9
Binary files /dev/null and b/_static/plus.png differ
diff --git a/_static/pygments.css b/_static/pygments.css
new file mode 100644
index 00000000..84ab3030
--- /dev/null
+++ b/_static/pygments.css
@@ -0,0 +1,75 @@
+pre { line-height: 125%; }
+td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #f8f8f8; }
+.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #008000; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #9C6500 } /* Comment.Preproc */
+.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
+.highlight .gr { color: #E40000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #008400 } /* Generic.Inserted */
+.highlight .go { color: #717171 } /* Generic.Output */
+.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #008000 } /* Keyword.Pseudo */
+.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #B00040 } /* Keyword.Type */
+.highlight .m { color: #666666 } /* Literal.Number */
+.highlight .s { color: #BA2121 } /* Literal.String */
+.highlight .na { color: #687822 } /* Name.Attribute */
+.highlight .nb { color: #008000 } /* Name.Builtin */
+.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.highlight .no { color: #880000 } /* Name.Constant */
+.highlight .nd { color: #AA22FF } /* Name.Decorator */
+.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #0000FF } /* Name.Function */
+.highlight .nl { color: #767600 } /* Name.Label */
+.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #19177C } /* Name.Variable */
+.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #666666 } /* Literal.Number.Bin */
+.highlight .mf { color: #666666 } /* Literal.Number.Float */
+.highlight .mh { color: #666666 } /* Literal.Number.Hex */
+.highlight .mi { color: #666666 } /* Literal.Number.Integer */
+.highlight .mo { color: #666666 } /* Literal.Number.Oct */
+.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
+.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
+.highlight .sc { color: #BA2121 } /* Literal.String.Char */
+.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
+.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
+.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
+.highlight .sx { color: #008000 } /* Literal.String.Other */
+.highlight .sr { color: #A45A77 } /* Literal.String.Regex */
+.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
+.highlight .ss { color: #19177C } /* Literal.String.Symbol */
+.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #0000FF } /* Name.Function.Magic */
+.highlight .vc { color: #19177C } /* Name.Variable.Class */
+.highlight .vg { color: #19177C } /* Name.Variable.Global */
+.highlight .vi { color: #19177C } /* Name.Variable.Instance */
+.highlight .vm { color: #19177C } /* Name.Variable.Magic */
+.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/_static/searchtools.js b/_static/searchtools.js
new file mode 100644
index 00000000..2c774d17
--- /dev/null
+++ b/_static/searchtools.js
@@ -0,0 +1,632 @@
+/*
+ * Sphinx JavaScript utilities for the full-text search.
+ */
+"use strict";
+
+/**
+ * Simple result scoring code.
+ */
+if (typeof Scorer === "undefined") {
+ var Scorer = {
+ // Implement the following function to further tweak the score for each result
+ // The function takes a result array [docname, title, anchor, descr, score, filename]
+ // and returns the new score.
+ /*
+ score: result => {
+ const [docname, title, anchor, descr, score, filename, kind] = result
+ return score
+ },
+ */
+
+ // query matches the full name of an object
+ objNameMatch: 11,
+ // or matches in the last dotted part of the object name
+ objPartialMatch: 6,
+ // Additive scores depending on the priority of the object
+ objPrio: {
+ 0: 15, // used to be importantResults
+ 1: 5, // used to be objectResults
+ 2: -5, // used to be unimportantResults
+ },
+ // Used when the priority is not in the mapping.
+ objPrioDefault: 0,
+
+ // query found in title
+ title: 15,
+ partialTitle: 7,
+ // query found in terms
+ term: 5,
+ partialTerm: 2,
+ };
+}
+
+// Global search result kind enum, used by themes to style search results.
+class SearchResultKind {
+ static get index() { return "index"; }
+ static get object() { return "object"; }
+ static get text() { return "text"; }
+ static get title() { return "title"; }
+}
+
+const _removeChildren = (element) => {
+ while (element && element.lastChild) element.removeChild(element.lastChild);
+};
+
+/**
+ * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
+ */
+const _escapeRegExp = (string) =>
+ string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
+
+const _displayItem = (item, searchTerms, highlightTerms) => {
+ const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
+ const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
+ const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
+ const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
+ const contentRoot = document.documentElement.dataset.content_root;
+
+ const [docName, title, anchor, descr, score, _filename, kind] = item;
+
+ let listItem = document.createElement("li");
+ // Add a class representing the item's type:
+ // can be used by a theme's CSS selector for styling
+ // See SearchResultKind for the class names.
+ listItem.classList.add(`kind-${kind}`);
+ let requestUrl;
+ let linkUrl;
+ if (docBuilder === "dirhtml") {
+ // dirhtml builder
+ let dirname = docName + "/";
+ if (dirname.match(/\/index\/$/))
+ dirname = dirname.substring(0, dirname.length - 6);
+ else if (dirname === "index/") dirname = "";
+ requestUrl = contentRoot + dirname;
+ linkUrl = requestUrl;
+ } else {
+ // normal html builders
+ requestUrl = contentRoot + docName + docFileSuffix;
+ linkUrl = docName + docLinkSuffix;
+ }
+ let linkEl = listItem.appendChild(document.createElement("a"));
+ linkEl.href = linkUrl + anchor;
+ linkEl.dataset.score = score;
+ linkEl.innerHTML = title;
+ if (descr) {
+ listItem.appendChild(document.createElement("span")).innerHTML =
+ " (" + descr + ")";
+ // highlight search terms in the description
+ if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
+ highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
+ }
+ else if (showSearchSummary)
+ fetch(requestUrl)
+ .then((responseData) => responseData.text())
+ .then((data) => {
+ if (data)
+ listItem.appendChild(
+ Search.makeSearchSummary(data, searchTerms, anchor)
+ );
+ // highlight search terms in the summary
+ if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
+ highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
+ });
+ Search.output.appendChild(listItem);
+};
+const _finishSearch = (resultCount) => {
+ Search.stopPulse();
+ Search.title.innerText = _("Search Results");
+ if (!resultCount)
+ Search.status.innerText = Documentation.gettext(
+ "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
+ );
+ else
+ Search.status.innerText = Documentation.ngettext(
+ "Search finished, found one page matching the search query.",
+ "Search finished, found ${resultCount} pages matching the search query.",
+ resultCount,
+ ).replace('${resultCount}', resultCount);
+};
+const _displayNextItem = (
+ results,
+ resultCount,
+ searchTerms,
+ highlightTerms,
+) => {
+ // results left, load the summary and display it
+ // this is intended to be dynamic (don't sub resultsCount)
+ if (results.length) {
+ _displayItem(results.pop(), searchTerms, highlightTerms);
+ setTimeout(
+ () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
+ 5
+ );
+ }
+ // search finished, update title and status message
+ else _finishSearch(resultCount);
+};
+// Helper function used by query() to order search results.
+// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
+// Order the results by score (in opposite order of appearance, since the
+// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
+const _orderResultsByScoreThenName = (a, b) => {
+ const leftScore = a[4];
+ const rightScore = b[4];
+ if (leftScore === rightScore) {
+ // same score: sort alphabetically
+ const leftTitle = a[1].toLowerCase();
+ const rightTitle = b[1].toLowerCase();
+ if (leftTitle === rightTitle) return 0;
+ return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
+ }
+ return leftScore > rightScore ? 1 : -1;
+};
+
+/**
+ * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
+ * custom function per language.
+ *
+ * The regular expression works by splitting the string on consecutive characters
+ * that are not Unicode letters, numbers, underscores, or emoji characters.
+ * This is the same as ``\W+`` in Python, preserving the surrogate pair area.
+ */
+if (typeof splitQuery === "undefined") {
+ var splitQuery = (query) => query
+ .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
+ .filter(term => term) // remove remaining empty strings
+}
+
+/**
+ * Search Module
+ */
+const Search = {
+ _index: null,
+ _queued_query: null,
+ _pulse_status: -1,
+
+ htmlToText: (htmlString, anchor) => {
+ const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
+ for (const removalQuery of [".headerlink", "script", "style"]) {
+ htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
+ }
+ if (anchor) {
+ const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
+ if (anchorContent) return anchorContent.textContent;
+
+ console.warn(
+ `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
+ );
+ }
+
+ // if anchor not specified or not found, fall back to main content
+ const docContent = htmlElement.querySelector('[role="main"]');
+ if (docContent) return docContent.textContent;
+
+ console.warn(
+ "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
+ );
+ return "";
+ },
+
+ init: () => {
+ const query = new URLSearchParams(window.location.search).get("q");
+ document
+ .querySelectorAll('input[name="q"]')
+ .forEach((el) => (el.value = query));
+ if (query) Search.performSearch(query);
+ },
+
+ loadIndex: (url) =>
+ (document.body.appendChild(document.createElement("script")).src = url),
+
+ setIndex: (index) => {
+ Search._index = index;
+ if (Search._queued_query !== null) {
+ const query = Search._queued_query;
+ Search._queued_query = null;
+ Search.query(query);
+ }
+ },
+
+ hasIndex: () => Search._index !== null,
+
+ deferQuery: (query) => (Search._queued_query = query),
+
+ stopPulse: () => (Search._pulse_status = -1),
+
+ startPulse: () => {
+ if (Search._pulse_status >= 0) return;
+
+ const pulse = () => {
+ Search._pulse_status = (Search._pulse_status + 1) % 4;
+ Search.dots.innerText = ".".repeat(Search._pulse_status);
+ if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
+ };
+ pulse();
+ },
+
+ /**
+ * perform a search for something (or wait until index is loaded)
+ */
+ performSearch: (query) => {
+ // create the required interface elements
+ const searchText = document.createElement("h2");
+ searchText.textContent = _("Searching");
+ const searchSummary = document.createElement("p");
+ searchSummary.classList.add("search-summary");
+ searchSummary.innerText = "";
+ const searchList = document.createElement("ul");
+ searchList.setAttribute("role", "list");
+ searchList.classList.add("search");
+
+ const out = document.getElementById("search-results");
+ Search.title = out.appendChild(searchText);
+ Search.dots = Search.title.appendChild(document.createElement("span"));
+ Search.status = out.appendChild(searchSummary);
+ Search.output = out.appendChild(searchList);
+
+ const searchProgress = document.getElementById("search-progress");
+ // Some themes don't use the search progress node
+ if (searchProgress) {
+ searchProgress.innerText = _("Preparing search...");
+ }
+ Search.startPulse();
+
+ // index already loaded, the browser was quick!
+ if (Search.hasIndex()) Search.query(query);
+ else Search.deferQuery(query);
+ },
+
+ _parseQuery: (query) => {
+ // stem the search terms and add them to the correct list
+ const stemmer = new Stemmer();
+ const searchTerms = new Set();
+ const excludedTerms = new Set();
+ const highlightTerms = new Set();
+ const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
+ splitQuery(query.trim()).forEach((queryTerm) => {
+ const queryTermLower = queryTerm.toLowerCase();
+
+ // maybe skip this "word"
+ // stopwords array is from language_data.js
+ if (
+ stopwords.indexOf(queryTermLower) !== -1 ||
+ queryTerm.match(/^\d+$/)
+ )
+ return;
+
+ // stem the word
+ let word = stemmer.stemWord(queryTermLower);
+ // select the correct list
+ if (word[0] === "-") excludedTerms.add(word.substr(1));
+ else {
+ searchTerms.add(word);
+ highlightTerms.add(queryTermLower);
+ }
+ });
+
+ if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
+ localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
+ }
+
+ // console.debug("SEARCH: searching for:");
+ // console.info("required: ", [...searchTerms]);
+ // console.info("excluded: ", [...excludedTerms]);
+
+ return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
+ },
+
+ /**
+ * execute search (requires search index to be loaded)
+ */
+ _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
+ const filenames = Search._index.filenames;
+ const docNames = Search._index.docnames;
+ const titles = Search._index.titles;
+ const allTitles = Search._index.alltitles;
+ const indexEntries = Search._index.indexentries;
+
+ // Collect multiple result groups to be sorted separately and then ordered.
+ // Each is an array of [docname, title, anchor, descr, score, filename, kind].
+ const normalResults = [];
+ const nonMainIndexResults = [];
+
+ _removeChildren(document.getElementById("search-progress"));
+
+ const queryLower = query.toLowerCase().trim();
+ for (const [title, foundTitles] of Object.entries(allTitles)) {
+ if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
+ for (const [file, id] of foundTitles) {
+ const score = Math.round(Scorer.title * queryLower.length / title.length);
+ const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
+ normalResults.push([
+ docNames[file],
+ titles[file] !== title ? `${titles[file]} > ${title}` : title,
+ id !== null ? "#" + id : "",
+ null,
+ score + boost,
+ filenames[file],
+ SearchResultKind.title,
+ ]);
+ }
+ }
+ }
+
+ // search for explicit entries in index directives
+ for (const [entry, foundEntries] of Object.entries(indexEntries)) {
+ if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
+ for (const [file, id, isMain] of foundEntries) {
+ const score = Math.round(100 * queryLower.length / entry.length);
+ const result = [
+ docNames[file],
+ titles[file],
+ id ? "#" + id : "",
+ null,
+ score,
+ filenames[file],
+ SearchResultKind.index,
+ ];
+ if (isMain) {
+ normalResults.push(result);
+ } else {
+ nonMainIndexResults.push(result);
+ }
+ }
+ }
+ }
+
+ // lookup as object
+ objectTerms.forEach((term) =>
+ normalResults.push(...Search.performObjectSearch(term, objectTerms))
+ );
+
+ // lookup as search terms in fulltext
+ normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
+
+ // let the scorer override scores with a custom scoring function
+ if (Scorer.score) {
+ normalResults.forEach((item) => (item[4] = Scorer.score(item)));
+ nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
+ }
+
+ // Sort each group of results by score and then alphabetically by name.
+ normalResults.sort(_orderResultsByScoreThenName);
+ nonMainIndexResults.sort(_orderResultsByScoreThenName);
+
+ // Combine the result groups in (reverse) order.
+ // Non-main index entries are typically arbitrary cross-references,
+ // so display them after other results.
+ let results = [...nonMainIndexResults, ...normalResults];
+
+ // remove duplicate search results
+ // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
+ let seen = new Set();
+ results = results.reverse().reduce((acc, result) => {
+ let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
+ if (!seen.has(resultStr)) {
+ acc.push(result);
+ seen.add(resultStr);
+ }
+ return acc;
+ }, []);
+
+ return results.reverse();
+ },
+
+ query: (query) => {
+ const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
+ const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
+
+ // for debugging
+ //Search.lastresults = results.slice(); // a copy
+ // console.info("search results:", Search.lastresults);
+
+ // print the results
+ _displayNextItem(results, results.length, searchTerms, highlightTerms);
+ },
+
+ /**
+ * search for object names
+ */
+ performObjectSearch: (object, objectTerms) => {
+ const filenames = Search._index.filenames;
+ const docNames = Search._index.docnames;
+ const objects = Search._index.objects;
+ const objNames = Search._index.objnames;
+ const titles = Search._index.titles;
+
+ const results = [];
+
+ const objectSearchCallback = (prefix, match) => {
+ const name = match[4]
+ const fullname = (prefix ? prefix + "." : "") + name;
+ const fullnameLower = fullname.toLowerCase();
+ if (fullnameLower.indexOf(object) < 0) return;
+
+ let score = 0;
+ const parts = fullnameLower.split(".");
+
+ // check for different match types: exact matches of full name or
+ // "last name" (i.e. last dotted part)
+ if (fullnameLower === object || parts.slice(-1)[0] === object)
+ score += Scorer.objNameMatch;
+ else if (parts.slice(-1)[0].indexOf(object) > -1)
+ score += Scorer.objPartialMatch; // matches in last name
+
+ const objName = objNames[match[1]][2];
+ const title = titles[match[0]];
+
+ // If more than one term searched for, we require other words to be
+ // found in the name/title/description
+ const otherTerms = new Set(objectTerms);
+ otherTerms.delete(object);
+ if (otherTerms.size > 0) {
+ const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
+ if (
+ [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
+ )
+ return;
+ }
+
+ let anchor = match[3];
+ if (anchor === "") anchor = fullname;
+ else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
+
+ const descr = objName + _(", in ") + title;
+
+ // add custom score for some objects according to scorer
+ if (Scorer.objPrio.hasOwnProperty(match[2]))
+ score += Scorer.objPrio[match[2]];
+ else score += Scorer.objPrioDefault;
+
+ results.push([
+ docNames[match[0]],
+ fullname,
+ "#" + anchor,
+ descr,
+ score,
+ filenames[match[0]],
+ SearchResultKind.object,
+ ]);
+ };
+ Object.keys(objects).forEach((prefix) =>
+ objects[prefix].forEach((array) =>
+ objectSearchCallback(prefix, array)
+ )
+ );
+ return results;
+ },
+
+ /**
+ * search for full-text terms in the index
+ */
+ performTermsSearch: (searchTerms, excludedTerms) => {
+ // prepare search
+ const terms = Search._index.terms;
+ const titleTerms = Search._index.titleterms;
+ const filenames = Search._index.filenames;
+ const docNames = Search._index.docnames;
+ const titles = Search._index.titles;
+
+ const scoreMap = new Map();
+ const fileMap = new Map();
+
+ // perform the search on the required terms
+ searchTerms.forEach((word) => {
+ const files = [];
+ const arr = [
+ { files: terms[word], score: Scorer.term },
+ { files: titleTerms[word], score: Scorer.title },
+ ];
+ // add support for partial matches
+ if (word.length > 2) {
+ const escapedWord = _escapeRegExp(word);
+ if (!terms.hasOwnProperty(word)) {
+ Object.keys(terms).forEach((term) => {
+ if (term.match(escapedWord))
+ arr.push({ files: terms[term], score: Scorer.partialTerm });
+ });
+ }
+ if (!titleTerms.hasOwnProperty(word)) {
+ Object.keys(titleTerms).forEach((term) => {
+ if (term.match(escapedWord))
+ arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
+ });
+ }
+ }
+
+ // no match but word was a required one
+ if (arr.every((record) => record.files === undefined)) return;
+
+ // found search word in contents
+ arr.forEach((record) => {
+ if (record.files === undefined) return;
+
+ let recordFiles = record.files;
+ if (recordFiles.length === undefined) recordFiles = [recordFiles];
+ files.push(...recordFiles);
+
+ // set score for the word in each file
+ recordFiles.forEach((file) => {
+ if (!scoreMap.has(file)) scoreMap.set(file, {});
+ scoreMap.get(file)[word] = record.score;
+ });
+ });
+
+ // create the mapping
+ files.forEach((file) => {
+ if (!fileMap.has(file)) fileMap.set(file, [word]);
+ else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
+ });
+ });
+
+ // now check if the files don't contain excluded terms
+ const results = [];
+ for (const [file, wordList] of fileMap) {
+ // check if all requirements are matched
+
+ // as search terms with length < 3 are discarded
+ const filteredTermCount = [...searchTerms].filter(
+ (term) => term.length > 2
+ ).length;
+ if (
+ wordList.length !== searchTerms.size &&
+ wordList.length !== filteredTermCount
+ )
+ continue;
+
+ // ensure that none of the excluded terms is in the search result
+ if (
+ [...excludedTerms].some(
+ (term) =>
+ terms[term] === file ||
+ titleTerms[term] === file ||
+ (terms[term] || []).includes(file) ||
+ (titleTerms[term] || []).includes(file)
+ )
+ )
+ break;
+
+ // select one (max) score for the file.
+ const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
+ // add result to the result list
+ results.push([
+ docNames[file],
+ titles[file],
+ "",
+ null,
+ score,
+ filenames[file],
+ SearchResultKind.text,
+ ]);
+ }
+ return results;
+ },
+
+ /**
+ * helper function to return a node containing the
+ * search summary for a given text. keywords is a list
+ * of stemmed words.
+ */
+ makeSearchSummary: (htmlText, keywords, anchor) => {
+ const text = Search.htmlToText(htmlText, anchor);
+ if (text === "") return null;
+
+ const textLower = text.toLowerCase();
+ const actualStartPosition = [...keywords]
+ .map((k) => textLower.indexOf(k.toLowerCase()))
+ .filter((i) => i > -1)
+ .slice(-1)[0];
+ const startWithContext = Math.max(actualStartPosition - 120, 0);
+
+ const top = startWithContext === 0 ? "" : "...";
+ const tail = startWithContext + 240 < text.length ? "..." : "";
+
+ let summary = document.createElement("p");
+ summary.classList.add("context");
+ summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
+
+ return summary;
+ },
+};
+
+_ready(Search.init);
diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js
new file mode 100644
index 00000000..8a96c69a
--- /dev/null
+++ b/_static/sphinx_highlight.js
@@ -0,0 +1,154 @@
+/* Highlighting utilities for Sphinx HTML documentation. */
+"use strict";
+
+const SPHINX_HIGHLIGHT_ENABLED = true
+
+/**
+ * highlight a given string on a node by wrapping it in
+ * span elements with the given class name.
+ */
+const _highlight = (node, addItems, text, className) => {
+ if (node.nodeType === Node.TEXT_NODE) {
+ const val = node.nodeValue;
+ const parent = node.parentNode;
+ const pos = val.toLowerCase().indexOf(text);
+ if (
+ pos >= 0 &&
+ !parent.classList.contains(className) &&
+ !parent.classList.contains("nohighlight")
+ ) {
+ let span;
+
+ const closestNode = parent.closest("body, svg, foreignObject");
+ const isInSVG = closestNode && closestNode.matches("svg");
+ if (isInSVG) {
+ span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+ } else {
+ span = document.createElement("span");
+ span.classList.add(className);
+ }
+
+ span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+ const rest = document.createTextNode(val.substr(pos + text.length));
+ parent.insertBefore(
+ span,
+ parent.insertBefore(
+ rest,
+ node.nextSibling
+ )
+ );
+ node.nodeValue = val.substr(0, pos);
+ /* There may be more occurrences of search term in this node. So call this
+ * function recursively on the remaining fragment.
+ */
+ _highlight(rest, addItems, text, className);
+
+ if (isInSVG) {
+ const rect = document.createElementNS(
+ "http://www.w3.org/2000/svg",
+ "rect"
+ );
+ const bbox = parent.getBBox();
+ rect.x.baseVal.value = bbox.x;
+ rect.y.baseVal.value = bbox.y;
+ rect.width.baseVal.value = bbox.width;
+ rect.height.baseVal.value = bbox.height;
+ rect.setAttribute("class", className);
+ addItems.push({ parent: parent, target: rect });
+ }
+ }
+ } else if (node.matches && !node.matches("button, select, textarea")) {
+ node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
+ }
+};
+const _highlightText = (thisNode, text, className) => {
+ let addItems = [];
+ _highlight(thisNode, addItems, text, className);
+ addItems.forEach((obj) =>
+ obj.parent.insertAdjacentElement("beforebegin", obj.target)
+ );
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+const SphinxHighlight = {
+
+ /**
+ * highlight the search words provided in localstorage in the text
+ */
+ highlightSearchWords: () => {
+ if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
+
+ // get and clear terms from localstorage
+ const url = new URL(window.location);
+ const highlight =
+ localStorage.getItem("sphinx_highlight_terms")
+ || url.searchParams.get("highlight")
+ || "";
+ localStorage.removeItem("sphinx_highlight_terms")
+ url.searchParams.delete("highlight");
+ window.history.replaceState({}, "", url);
+
+ // get individual terms from highlight string
+ const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
+ if (terms.length === 0) return; // nothing to do
+
+ // There should never be more than one element matching "div.body"
+ const divBody = document.querySelectorAll("div.body");
+ const body = divBody.length ? divBody[0] : document.querySelector("body");
+ window.setTimeout(() => {
+ terms.forEach((term) => _highlightText(body, term, "highlighted"));
+ }, 10);
+
+ const searchBox = document.getElementById("searchbox");
+ if (searchBox === null) return;
+ searchBox.appendChild(
+ document
+ .createRange()
+ .createContextualFragment(
+ '
' +
+ '' +
+ _("Hide Search Matches") +
+ "
"
+ )
+ );
+ },
+
+ /**
+ * helper function to hide the search marks again
+ */
+ hideSearchWords: () => {
+ document
+ .querySelectorAll("#searchbox .highlight-link")
+ .forEach((el) => el.remove());
+ document
+ .querySelectorAll("span.highlighted")
+ .forEach((el) => el.classList.remove("highlighted"));
+ localStorage.removeItem("sphinx_highlight_terms")
+ },
+
+ initEscapeListener: () => {
+ // only install a listener if it is really needed
+ if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
+
+ document.addEventListener("keydown", (event) => {
+ // bail for input elements
+ if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
+ // bail with special keys
+ if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
+ if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
+ SphinxHighlight.hideSearchWords();
+ event.preventDefault();
+ }
+ });
+ },
+};
+
+_ready(() => {
+ /* Do not call highlightSearchWords() when we are on the search page.
+ * It will highlight words from the *previous* search query.
+ */
+ if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
+ SphinxHighlight.initEscapeListener();
+});
diff --git a/api/api.html b/api/api.html
new file mode 100644
index 00000000..75c43fd8
--- /dev/null
+++ b/api/api.html
@@ -0,0 +1,1096 @@
+
+
+
+
+
+
+
+
+
pyflyby API — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/autoimp.html b/api/autoimp.html
new file mode 100644
index 00000000..ac0cf6cd
--- /dev/null
+++ b/api/autoimp.html
@@ -0,0 +1,1492 @@
+
+
+
+
+
+
+
+
+
_autoimp module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_autoimp module
+
+
+exception pyflyby._autoimp. LoadSymbolError
+
+
+
+
+class pyflyby._autoimp. ScopeStack ( arg , _class_delayed = None )
+A stack of namespace scopes, as a tuple of dict
s.
+Each entry is a dict
.
+Ordered from most-global to most-local.
+Builtins are always included.
+Duplicates are removed.
+
+
+_abc_impl = <_abc._abc_data object>
+
+
+
+
+_cached_has_star_import = False
+
+
+
+
+clone_top ( )
+Return a new ScopeStack
referencing the same namespaces as self
,
+but cloning the topmost namespace (and aliasing the others).
+
+
+
+
+has_star_import ( )
+Return whether there are any star-imports in this ScopeStack.
+Only relevant in AST-based static analysis mode.
+
+
+
+
+merged_to_two ( )
+Return a 2-tuple of dicts.
+These can be used for functions that take a globals
and locals
+argument, such as eval
.
+If there is only one entry, then return it twice.
+If there are more than two entries, then create a new dict that merges
+the more-global ones. The most-local stack will alias the dict from
+the existing ScopeStack.
+
+Return type:
+tuple
of (dict
, dict
)
+
+
+
+
+
+
+with_new_scope ( include_class_scopes = False , new_class_scope = False , unhide_classdef = False )
+Return a new ScopeStack
with an additional empty scope.
+
+Parameters:
+
+include_class_scopes – Whether to include previous scopes that are meant for ClassDefs.
+new_class_scope – Whether the new scope is for a ClassDef.
+unhide_classdef – Unhide class definitiion scope (when we enter a method)
+
+
+Return type:
+ScopeStack
+
+
+
+
+
+
+
+
+class pyflyby._autoimp. _ClassScope
+
+
+
+
+pyflyby._autoimp. _IMPORT_FAILED : Set [ Any ] = {}
+Set of imports we’ve already attempted and failed.
+
+
+
+
+class pyflyby._autoimp. _MissingImportFinder ( scopestack , * , find_unused_imports , parse_docstrings )
+A helper class to be used only by _find_missing_imports_in_ast .
+This class visits every AST node and collects symbols that require
+importing. A symbol requires importing if it is not already imported or
+otherwise defined/assigned in this scope.
+For attributes like “foo.bar.baz”, we need to be more sophisticated:
+Suppose the user imports “foo.bar” and then accesses “foo.bar.baz.quux”.
+Baz may be already available just by importing foo.bar, or it may require
+further import. We decide as follows. If foo.bar is not a module, then
+we assume whatever’s under it can’t be imported. If foo.bar is a module
+but does not have a ‘baz’ attribute, then it does require import.
+
+
+_NewScopeCtx ( ** kwargs )
+Context manager that temporarily pushes a new empty namespace onto the
+stack of namespaces.
+
+
+
+
+_UpScopeCtx ( )
+Context manager that temporarily moves up one in the scope stack
+
+
+
+
+_check_load ( fullname , scopestack , lineno )
+Check if the symbol needs import. (As a side effect, if the object
+is a _UseChecker, this will mark it as used.
+TODO: It would be
+better to refactor symbol_needs_import so that it just returns the
+object it found, and we mark it as used here.)
+
+
+
+
+_deferred_load_checks : list
[ tuple
[ str
, ScopeStack
, Optional
[ int
]]]
+
+
+
+
+_finish_deferred_load_checks ( )
+
+
+
+
+_get_scope_info ( )
+
+
+
+
+_lineno : Optional
[ int
]
+
+
+
+
+_remove_from_missing_imports ( fullname )
+
+
+
+
+_scan_node ( node )
+
+
+
+
+_scan_unused_imports ( )
+
+
+
+
+_visit_Load ( fullname )
+
+
+
+
+_visit_Load_defered ( fullname )
+
+
+
+
+_visit_Load_defered_global ( fullname )
+Some things will be resolved in global scope later.
+
+
+
+
+_visit_Load_immediate ( fullname )
+
+
+
+
+_visit_Store ( fullname , value = None )
+
+
+
+
+_visit_StoreImport ( node , modulename )
+
+
+
+
+_visit__all__ ( node )
+
+
+
+
+_visit_fullname ( fullname , ctx )
+
+
+
+
+Warning, when a type comment the node is a string, not an ast node.
+We also get two types of type comments:
+The signature one just after a function definition
+
+
+def foo(a): # type: int -> None
+pass
+
+
+
+And the variable annotation ones:
+
+
+def foo(a #type: int ):
+pass
+
+
+
+ast parse “func_type” mode only support the first one.
+
+
+
+
+find_missing_imports ( node )
+
+
+
+
+generic_visit ( node )
+Generic visitor that visits all of the node’s field values, in the
+order declared by node._fields
.
+Called if no explicit visitor function exists for a node.
+
+
+
+
+missing_imports : List
[ Tuple
[ Optional
[ int
], DottedIdentifier
]]
+
+
+
+
+parse_docstrings : bool
+
+
+
+
+scan_for_import_issues ( codeblock )
+
+
+
+
+scopestack : ScopeStack
+
+
+
+
+unused_imports : Optional
[ List
[ Tuple
[ int
, str
]]]
+
+
+
+
+visit ( node )
+Visit a node.
+
+
+
+
+
+
+visit_Assign ( node )
+
+
+
+
+visit_AsyncFunctionDef ( node )
+
+
+
+
+visit_Attribute ( node )
+
+
+
+
+visit_Call ( node )
+
+
+
+
+visit_ClassDef ( node )
+
+
+
+
+visit_Constant ( node )
+
+
+
+
+visit_Delete ( node )
+
+
+
+
+visit_Dict ( node )
+
+
+
+
+visit_DictComp ( node )
+
+
+
+
+visit_ExceptHandler ( node )
+
+
+
+
+visit_Expr ( node )
+
+
+
+
+visit_FunctionDef ( node )
+
+
+
+
+visit_GeneratorExp ( node )
+
+
+
+
+visit_ImportFrom ( node )
+
+
+
+
+visit_Lambda ( node )
+
+
+
+
+visit_ListComp ( node )
+
+
+
+
+visit_Match ( node )
+
+
+
+
+visit_MatchAs ( node )
+
+
+
+
+visit_MatchMapping ( node )
+
+
+
+
+visit_Module ( node )
+
+
+
+
+visit_Name ( node )
+
+
+
+
+visit_Pass ( node )
+
+
+
+
+visit_SetComp ( node )
+
+
+
+
+visit_alias ( node , modulename = None )
+
+
+
+
+visit_arg ( node )
+
+
+
+
+visit_arguments ( node )
+
+
+
+
+visit_comprehension ( node )
+
+
+
+
+visit_match_case ( node )
+
+
+
+
+
+
+class pyflyby._autoimp. _UseChecker ( name , source , lineno )
+An object that can check whether it was used.
+
+
+lineno : int
+
+
+
+
+name : str
+
+
+
+
+source : str
+
+
+
+
+used : bool
= False
+
+
+
+
+
+
+pyflyby._autoimp. _find_earliest_backjump_label ( bytecode )
+Find the earliest target of a backward jump.
+These normally represent loops.
+For example, given the source code:
+>>> def f ():
+... if foo1 ():
+... foo2 ()
+... else :
+... foo3 ()
+... foo4 ()
+... while foo5 (): # L7
+... foo6 ()
+
+
+The earliest target of a backward jump would be the ‘while’ loop at L7, at
+bytecode offset 38:
+>>> _find_earliest_backjump_label ( f . __code__ . co_code )
+38
+
+
+Note that in this example there are earlier targets of jumps at bytecode
+offsets 20 and 28, but those are targets of _forward_ jumps, and the
+clients of this function care about the earliest _backward_ jump.
+If there are no backward jumps, return an offset that points after the end
+of the bytecode.
+
+Parameters:
+bytecode (bytes
) – Compiled bytecode, e.g. function.__code__.co_code
.
+
+Return type:
+int
+
+Returns:
+The earliest target of a backward jump, as an offset into the bytecode.
+
+
+
+
+
+
+pyflyby._autoimp. _find_loads_without_stores_in_code ( co , loads_without_stores )
+Find global LOADs without corresponding STOREs, by disassembling code.
+Recursive helper for _find_missing_imports_in_code .
+
+Parameters:
+
+co (types.CodeType
) – Code object, e.g. function.__code__
+loads_without_stores (set
) – Mutable set to which we add loads without stores.
+
+
+Returns:
+None
+
+
+
+
+
+
+pyflyby._autoimp. _find_missing_imports_in_ast ( node , namespaces )
+Find missing imports in an AST node.
+Helper function to find_missing_imports .
+>>> node = ast . parse ( "import numpy; numpy.arange(x) + arange(x)" )
+>>> _find_missing_imports_in_ast ( node , [{}])
+[DottedIdentifier('arange'), DottedIdentifier('x')]
+
+
+
+Return type:
+list
of DottedIdentifier
+
+
+
+
+
+
+pyflyby._autoimp. _find_missing_imports_in_code ( co , namespaces )
+Find missing imports in a code object.
+Helper function to find_missing_imports .
+>>> f = lambda : foo . bar ( x ) + baz ( y )
+>>> [ str ( m ) for m in _find_missing_imports_in_code ( f . __code__ , [{}])]
+['baz', 'foo.bar', 'x', 'y']
+
+
+>>> f = lambda x : ( lambda : x + y )
+>>> _find_missing_imports_in_code ( f . __code__ , [{}])
+[DottedIdentifier('y')]
+
+
+
+Return type:
+list
of str
+
+
+
+
+
+
+pyflyby._autoimp. _try_import ( imp , namespace )
+Try to execute an import. Import the result into the namespace
+namespace
.
+Print to stdout what we’re about to do.
+Only import into namespace
if we won’t clobber an existing definition.
+
+Parameters:
+
+imp (Import
or str
) – The import to execute, e.g. “from numpy import arange”
+namespace (dict
) – Namespace to import into.
+
+
+Returns:
+True
on success, False
on failure
+
+
+
+
+
+
+pyflyby._autoimp. auto_import_symbol ( fullname , namespaces , db = None , autoimported = None , post_import_hook = None )
+Try to auto-import a single name.
+
+Parameters:
+
+fullname (str
) – Fully-qualified module name, e.g. “sqlalchemy.orm”.
+namespaces (list
of dict
, e.g. [globals()].) – Namespaces to check. Namespace[-1] is the namespace to import into.
+db (ImportDB ) – Import database to use.
+autoimported – If not None
, then a dictionary of identifiers already attempted.
+auto_import
will not attempt to auto-import symbols already in this
+dictionary, and will add attempted symbols to this dictionary, with
+value True
if the autoimport succeeded, or False
if the autoimport
+did not succeed.
+post_import_hook (callable
) – A callable that is invoked if an import was successfully made.
+It is invoked with the Import object representing the successful import
+
+
+Return type:
+bool
+
+Returns:
+True
if the symbol was already in the namespace, or the auto-import
+succeeded; False
if the auto-import failed.
+
+
+
+
+
+
+pyflyby._autoimp. clear_failed_imports_cache ( )
+Clear the cache of previously failed imports.
+
+
+
+
+pyflyby._autoimp. get_known_import ( fullname , db = None )
+Get the deepest known import.
+For example, suppose:
+
+
+The user accessed “foo.bar.baz”,
+We know imports for “foo”, “foo.bar”, and “foo.bar.quux”.
+
+
+Then we return “import foo.bar”.
+
+Parameters:
+fullname (DottedIdentifier ) – Fully-qualified name, such as “scipy.interpolate”
+
+
+
+
+
+
+pyflyby._autoimp. load_symbol ( fullname , namespaces , autoimport = False , db = None , autoimported = None )
+Load the symbol fullname
.
+>>> import os
+>>> load_symbol ( "os.path.join.__name__" , { "os" : os })
+'join'
+
+
+>>> load_symbol ( "os.path.join.asdf" , { "os" : os })
+Traceback (most recent call last):
+...
+pyflyby._autoimp.LoadSymbolError : os.path.join.asdf: AttributeError: 'function' object has no attribute 'asdf'
+
+
+>>> load_symbol ( "os.path.join" , {})
+Traceback (most recent call last):
+...
+pyflyby._autoimp.LoadSymbolError : os.path.join: NameError: os
+
+
+
+Parameters:
+
+fullname (str
) – Fully-qualified symbol name, e.g. “os.path.join”.
+namespaces (dict
or list
of dict
) – Namespaces to check.
+autoimport – If False
(default), the symbol must already be imported.
+If True
, then auto-import the symbol first.
+db (ImportDB ) – Import database to use when autoimport=True
.
+autoimported – If not None
, then a dictionary of identifiers already attempted.
+auto_import
will not attempt to auto-import symbols already in this
+dictionary, and will add attempted symbols to this dictionary, with
+value True
if the autoimport succeeded, or False
if the autoimport
+did not succeed.
+
+
+Returns:
+Object.
+
+Raises:
+LoadSymbolError – Object was not found or there was another exception.
+
+
+
+
+
+
+pyflyby._autoimp. scan_for_import_issues ( codeblock , find_unused_imports = True , parse_docstrings = False )
+Find missing and unused imports, by lineno.
+>>> arg = "import numpy, aa.bb as cc \n numpy.arange(x) \n arange(x)"
+>>> missing , unused = scan_for_import_issues ( arg )
+>>> missing
+[(2, DottedIdentifier('x')), (3, DottedIdentifier('arange')), (3, DottedIdentifier('x'))]
+>>> unused
+[(1, Import('from aa import bb as cc'))]
+
+
+
+Parameters:
+parse_docstrings (bool
) –
Whether to parse docstrings.
+Compare the following examples. When parse_docstrings=True, ‘bar’ is
+not considered unused because there is a string that references it in
+braces:
+>>> scan_for_import_issues ( "import foo as bar, baz \n ' {bar} ' \n " )
+([], [(1, Import('import baz')), (1, Import('import foo as bar'))])
+>>> scan_for_import_issues ( "import foo as bar, baz \n ' {bar} ' \n " , parse_docstrings = True )
+([], [(1, Import('import baz'))])
+
+
+
+
+
+
+
+
+
+pyflyby._autoimp. symbol_needs_import ( fullname , namespaces )
+Return whether fullname
is a symbol that needs to be imported, given
+the current namespace scopes.
+A symbol needs importing if it is not previously imported or otherwise
+assigned. namespaces
normally includes builtins and globals as well as
+symbols imported/assigned locally within the scope.
+If the user requested “foo.bar.baz”, and we see that “foo.bar” exists
+and is not a module, we assume nothing under foo.bar needs import.
+This is intentional because (1) the import would not match what is
+already in the namespace, and (2) we don’t want to do call
+getattr(foo.bar, “baz”), since that could invoke code that is slow or
+has side effects.
+
+Parameters:
+
+fullname (DottedIdentifier
) – Fully-qualified symbol name, e.g. “os.path.join”.
+namespaces (list
of dict
) – Stack of namespaces to search for existing items.
+
+
+Return type:
+bool
+
+Returns:
+True
if fullname
needs import, else False
+
+
+
+
+
+
+pyflyby._autoimp. take_arg ( op )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/cmdline.html b/api/cmdline.html
new file mode 100644
index 00000000..086c768a
--- /dev/null
+++ b/api/cmdline.html
@@ -0,0 +1,924 @@
+
+
+
+
+
+
+
+
+
_cmdline module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_cmdline module
+
+
+exception pyflyby._cmdline. AbortActions
+
+
+
+
+exception pyflyby._cmdline. Exit1
+
+
+
+
+class pyflyby._cmdline. Modifier ( modifier , filename )
+
+
+_tempfile ( )
+
+
+
+
+property input_content
+
+
+
+
+property input_content_filename
+
+
+
+
+property output_content
+
+
+
+
+property output_content_filename
+
+
+
+
+
+
+pyflyby._cmdline. _default_on_error ( filename )
+
+
+
+
+pyflyby._cmdline. _sigpipe_handler ( * args )
+
+
+
+
+pyflyby._cmdline. action_exit1 ( m )
+
+
+
+
+pyflyby._cmdline. action_external_command ( command )
+
+
+
+
+pyflyby._cmdline. action_ifchanged ( m )
+
+
+
+
+pyflyby._cmdline. action_print ( m )
+
+
+
+
+pyflyby._cmdline. action_query ( prompt = 'Proceed?' )
+
+
+
+
+pyflyby._cmdline. action_replace ( m )
+
+
+
+
+pyflyby._cmdline. filename_args ( args , on_error=<function _default_on_error> )
+Return list of filenames given command-line arguments.
+
+Return type:
+list
of Filename
+
+
+
+
+
+
+pyflyby._cmdline. hfmt ( s )
+
+
+
+
+pyflyby._cmdline. maindoc ( )
+
+
+
+
+pyflyby._cmdline. parse_args ( addopts = None , import_format_params = False , modify_action_params = False , defaults = None )
+Do setup for a top-level script and parse arguments.
+
+
+
+
+pyflyby._cmdline. print_version_and_exit ( extra = None )
+
+
+
+
+pyflyby._cmdline. process_actions ( filenames , actions , modify_function , reraise_exceptions = () )
+
+
+
+
+pyflyby._cmdline. symlink_callback ( option , opt_str , value , parser )
+
+
+
+
+pyflyby._cmdline. symlink_error ( m )
+
+
+
+
+pyflyby._cmdline. symlink_follow ( m )
+
+
+
+
+pyflyby._cmdline. symlink_replace ( m )
+
+
+
+
+pyflyby._cmdline. symlink_skip ( m )
+
+
+
+
+pyflyby._cmdline. syntax ( message = None , usage = None )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/comms.html b/api/comms.html
new file mode 100644
index 00000000..fbba3fda
--- /dev/null
+++ b/api/comms.html
@@ -0,0 +1,850 @@
+
+
+
+
+
+
+
+
+
_comms module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_comms module
+
+
+pyflyby._comms. _reformat_helper ( input_code , imports )
+
+
+
+
+pyflyby._comms. _register_target ( target_name )
+
+
+
+
+pyflyby._comms. collect_code_with_imports_on_top ( imports , cell_array )
+
+
+
+
+pyflyby._comms. comm_close_handler ( comm , message )
+
+
+
+
+pyflyby._comms. comm_open_handler ( comm , message )
+Handles comm_open message for pyflyby custom comm messages.
+https://jupyter-client.readthedocs.io/en/stable/messaging.html#opening-a-comm .
+Handler for all PYFLYBY custom comm messages that are opened by the frontend
+(at this point, just the jupyterlab frontend does this).
+
+
+
+
+This is a util for notebook interactions and extracts import statements
+from some python code. This function also re-orders imports.
+:param code: The code from which import statements have to be extracted
+:type code: str
+
+Returns:
+The first returned value contains all the import statements.
+The second returned value is the remaining code after
+extracting the import statements.
+
+Return type:
+(str, str)
+
+
+
+
+
+
+pyflyby._comms. in_jupyter ( )
+
+
+
+
+pyflyby._comms. initialize_comms ( )
+
+
+
+
+pyflyby._comms. remove_comms ( )
+
+
+
+
+pyflyby._comms. run_tidy_imports ( code )
+
+
+
+
+pyflyby._comms. send_comm_message ( target_name , msg )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/dbg.html b/api/dbg.html
new file mode 100644
index 00000000..ac95337a
--- /dev/null
+++ b/api/dbg.html
@@ -0,0 +1,1070 @@
+
+
+
+
+
+
+
+
+
_dbg module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_dbg module
+
+
+exception pyflyby._dbg. DebuggerAttachTimeoutError
+
+
+
+
+class pyflyby._dbg. Pty
+
+
+communicate ( )
+
+
+
+
+
+
+pyflyby._dbg. _DebuggerCtx ( tty = '/dev/tty' )
+A context manager that sets up the environment (stdio, sys hooks) for a
+debugger, initializes IPython if necessary, and creates a debugger instance.
+
+Returns:
+Context manager that yields a Pdb instance.
+
+
+
+
+
+
+pyflyby._dbg. _DisplayHookCtx ( )
+Context manager that resets sys.displayhook
to the default value upon
+entry, and restores the pre-context value upon exit.
+
+
+
+
+pyflyby._dbg. _ExceptHookCtx ( )
+Context manager that restores sys.excepthook
upon exit.
+
+
+
+
+pyflyby._dbg. _FdCtx ( target_fd , src_fd )
+
+
+
+
+exception pyflyby._dbg. _NoTtyError
+
+
+
+
+pyflyby._dbg. _StdioCtx ( tty = '/dev/tty' )
+Within the context, force fd {0, 1, 2}, sys.__{stdin,stdout,stderr}__,
+sys.{stdin,stdout,stderr} to fd. This allows us to use the debugger even
+if stdio is otherwise redirected.
+
+Parameters:
+tty (int
or str
) – Tty to use. Either a file descriptor or a name of a tty.
+
+
+
+
+
+
+pyflyby._dbg. _abbrev_filename ( filename )
+
+
+
+
+pyflyby._dbg. _debug_code ( arg , globals = None , locals = None , auto_import = True , tty = '/dev/tty' )
+Run code under the debugger.
+
+
+
+
+
+
+pyflyby._dbg. _debug_exception ( * exc_info , ** kwargs )
+Debug an exception – print a stack trace and enter the debugger.
+Suitable to be assigned to sys.excepthook.
+
+
+
+
+pyflyby._dbg. _dev_null ( )
+Return a file object opened for reading/writing to /dev/null.
+Memoized.
+
+Return type:
+file
+
+
+
+
+
+
+pyflyby._dbg. _dev_tty_fd ( )
+Return a file descriptor opened to /dev/tty.
+Memoized.
+
+
+
+
+pyflyby._dbg. _escape_for_gdb ( string )
+Escape a string to make it safe for passing to gdb.
+
+
+
+
+pyflyby._dbg. _find_py_commandline ( )
+
+
+
+
+pyflyby._dbg. _get_caller_frame ( )
+Get the closest frame from outside this module.
+
+Return type:
+FrameType
+
+
+
+
+
+
+pyflyby._dbg. _override_excepthook ( hook )
+Override sys.excepthook with hook but also support resetting.
+Users should call this function instead of directly overiding
+sys.excepthook. This is helpful in resetting sys.excepthook in certain cases.
+
+
+
+
+pyflyby._dbg. _prompt_continue_waiting_for_debugger ( )
+Prompt while exiting the debugger to get user opinion on keeping the
+process waiting for debugger to attach.
+
+
+
+
+pyflyby._dbg. _remote_print_stack_to_file ( pid , filename )
+
+
+
+
+pyflyby._dbg. _reset_excepthook ( )
+
+
+
+
+pyflyby._dbg. _send_email_with_attach_instructions ( arg , mailto , originalpid )
+
+
+
+
+pyflyby._dbg. _signal_handler_debugger ( signal_number , interrupted_frame )
+
+
+
+
+pyflyby._dbg. _sigterm_handler ( signum , frame )
+
+
+
+
+pyflyby._dbg. _sleep_until_debugger_attaches ( arg , timeout = 86400 )
+
+
+
+
+pyflyby._dbg. enable_sigterm_handler ( on_existing_handler = 'raise' )
+Install a handler for SIGTERM that causes Python to print a stack trace
+before exiting.
+
+Parameters:
+on_existing_handler –
+What to do when a SIGTERM handler was already registered.
+If "raise"
, then keep the existing handler and raise an exception.
+If "keep_existing"
, then silently keep the existing handler.
+If "warn_and_override"
, then override the existing handler and log a warning.
+If "silently_override"
, then silently override the existing handler.
+
+
+
+
+
+
+
+
+
+
+pyflyby._dbg. get_executable ( pid )
+Get the full path for the target process.
+
+Return type:
+Filename
+
+
+
+
+
+
+pyflyby._dbg. inject ( pid , statements , wait = True , show_gdb_output = False )
+Execute statements
in a running Python process.
+
+Parameters:
+
+
+Returns:
+Then process ID of the gdb process if wait
is False; None
if
+wait
is True.
+
+
+
+
+
+
+pyflyby._dbg. kill_process ( pid , kill_signals )
+Kill process pid
using various signals.
+
+Parameters:
+kill_signals – Sequence of (signal, delay) tuples. Each signal is tried in sequence,
+waiting up to delay
seconds before trying the next signal.
+
+
+
+
+
+
+pyflyby._dbg. process_exists ( pid )
+Return whether pid
exists.
+
+Return type:
+bool
+
+
+
+
+
+
+pyflyby._dbg. setraw_but_sigint ( fd , when = 2 )
+Put terminal into a raw mode.
+
+
+
+
+pyflyby._dbg. syscall_marker ( msg )
+Execute a dummy syscall that is visible in truss/strace.
+
+
+
+
+pyflyby._dbg. tty_is_usable ( )
+Return whether /dev/tty is usable.
+In interactive sessions, /dev/tty is usable; in non-interactive sessions,
+/dev/tty is not usable:
+ $ ssh -t localhost py -q pyflyby._dbg.tty_is_usable
+True
+
+$ ssh -T localhost py -q pyflyby._dbg.tty_is_usable
+False
+
+
+tty_is_usable() is useful for deciding whether we are in an interactive
+terminal. In an interactive terminal we can enter the debugger directly;
+in a non-interactive terminal, we need to wait_for_debugger_to_attach.
+Note that this is different from doing e.g. isatty(0). isatty would
+return False if a program was piped, even though /dev/tty is usable.
+
+
+
+
+pyflyby._dbg. wait_for_debugger_to_attach ( arg , mailto = None , background = False , timeout = 86400 )
+Send email to user and wait for debugger to attach.
+
+Parameters:
+
+arg – What to debug. Should be a sys.exc_info() result or a sys._getframe()
+result.
+mailto – Recipient to email. Defaults to $USER or current user.
+background – If True, fork a child process. The parent process continues immediately
+without waiting. The child process waits for a debugger to attach, and
+exits when the debugging session completes.
+timeout – Maximum number of seconds to wait for user to attach debugger.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/file.html b/api/file.html
new file mode 100644
index 00000000..6765d5fd
--- /dev/null
+++ b/api/file.html
@@ -0,0 +1,964 @@
+
+
+
+
+
+
+
+
+
_file module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_file module
+
+
+class pyflyby._file. FilePos ( * args )
+A (lineno, colno) position within a FileText .
+Both lineno and colno are 1-indexed.
+
+
+_ONE_ONE : ClassVar
[ FilePos
] = FilePos(1,1)
+
+
+
+
+property _data
+
+
+
+
+classmethod _from_lc ( lineno , colno )
+
+
+
+
+static _intint ( args )
+
+
+
+
+colno : int
+
+
+
+
+lineno : int
+
+
+
+
+
+
+class pyflyby._file. FileText ( arg , filename = None , startpos = None )
+Represents a contiguous sequence of lines from a file.
+
+
+_colno_to_index ( lineindex , colno )
+
+
+
+
+classmethod _from_lines ( lines , filename , startpos )
+
+
+
+
+_lineno_to_index ( lineno )
+
+
+
+
+_lines : Optional
[ Tuple
[ str
, ...
]] = None
+
+
+
+
+alter ( filename = None , startpos = None )
+
+
+
+
+classmethod concatenate ( args )
+Concatenate a bunch of FileText arguments. Uses the filename
+and startpos
from the first argument.
+
+Return type:
+FileText
+
+
+
+
+
+
+property endpos
+The position after the last character in the text.
+
+Return type:
+FilePos
+
+
+
+
+
+
+filename : Optional
[ Filename
]
+
+
+
+
+classmethod from_filename ( filename )
+
+
+
+
+property joined : str
+
+
+
+
+property lines : Tuple [ str , ... ]
+Lines that have been split by newline.
+These strings do NOT contain ‘n’.
+If the input file ended in ‘n’, then the last item will be the empty
+string. This is to avoid having to check lines[-1].endswith(’n’)
+everywhere.
+
+Return type:
+tuple
of str
+
+
+
+
+
+
+startpos : FilePos
+
+
+
+
+
+
+exception pyflyby._file. UnsafeFilenameError
+
+
+
+
+pyflyby._file. _get_PATH ( )
+
+
+
+
+pyflyby._file. atomic_write_file ( filename , data )
+
+
+
+
+pyflyby._file. expand_py_files_from_args ( pathnames , on_error=<function <lambda>> )
+Enumerate *.py
files, recursively.
+Arguments that are files are always included.
+Arguments that are directories are recursively searched for *.py
files.
+
+Parameters:
+on_error (callable ) – Function that is called for arguments directly specified in pathnames
+that don’t exist or are otherwise inaccessible.
+
+Return type:
+list
of Filename s
+
+
+
+
+
+
+pyflyby._file. read_file ( filename )
+
+Return type:
+FileText
+
+
+
+
+
+
+pyflyby._file. which ( program )
+Find program
on $PATH.
+
+Return type:
+Filename
+
+Returns:
+Program on $PATH, or None
if not found.
+
+
+
+
+
+
+pyflyby._file. write_file ( filename , data )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/flags.html b/api/flags.html
new file mode 100644
index 00000000..426f8e2d
--- /dev/null
+++ b/api/flags.html
@@ -0,0 +1,799 @@
+
+
+
+
+
+
+
+
+
_flags module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_flags module
+
+
+pyflyby._flags. CompilerFlags ( * args )
+Representation of Python “compiler flags”, i.e. features from __future__.
+>>> print ( CompilerFlags ( 0x18000 ) . __interactive_display__ ())
+CompilerFlags(0x18000) # from __future__ import with_statement, print_function
+
+
+>>> print ( CompilerFlags ( 0x10000 , 0x8000 ) . __interactive_display__ ())
+CompilerFlags(0x18000) # from __future__ import with_statement, print_function
+
+
+>>> print ( CompilerFlags ( 'with_statement' , 'print_function' ) . __interactive_display__ ())
+CompilerFlags(0x18000) # from __future__ import with_statement, print_function
+
+
+>>> compile ( "print('x', file=None)" , "?" , "exec" , flags = CompilerFlags ( "print_function" ), dont_inherit = 1 )
+<code object ...>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/format.html b/api/format.html
new file mode 100644
index 00000000..d435dabc
--- /dev/null
+++ b/api/format.html
@@ -0,0 +1,878 @@
+
+
+
+
+
+
+
+
+
_format module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/idents.html b/api/idents.html
new file mode 100644
index 00000000..f261a1b9
--- /dev/null
+++ b/api/idents.html
@@ -0,0 +1,925 @@
+
+
+
+
+
+
+
+
+
_idents module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_idents module
+
+
+exception pyflyby._idents. BadDottedIdentifierError
+
+
+
+
+class pyflyby._idents. DottedIdentifier ( arg , scope_info = None )
+
+
+classmethod _from_name ( name , scope_info = None )
+
+
+
+
+name : str
+
+
+
+
+property parent
+
+
+
+
+parts : Tuple
[ str
, ...
]
+
+
+
+
+property prefixes
+
+
+
+
+scope_info : Optional
[ Dict
]
+
+
+
+
+startswith ( o )
+
+
+
+
+
+
+pyflyby._idents. brace_identifiers ( text )
+Parse a string and yield all tokens of the form “{some_token}”.
+>>> list ( brace_identifiers ( " {salutation} , {your_name} ." ))
+['salutation', 'your_name']
+
+
+
+
+
+
+pyflyby._idents. dotted_prefixes ( dotted_name , reverse = False )
+Return the prefixes of a dotted name.
+>>> dotted_prefixes ( "aa.bb.cc" )
+['aa', 'aa.bb', 'aa.bb.cc']
+
+
+>>> dotted_prefixes ( "aa.bb.cc" , reverse = True )
+['aa.bb.cc', 'aa.bb', 'aa']
+
+
+
+Parameters:
+reverse – If False (default), return shortest to longest. If True, return longest
+to shortest.
+
+Return type:
+list
of str
+
+
+
+
+
+
+pyflyby._idents. is_identifier ( s , dotted = False , prefix = False )
+Return whether s
is a valid Python identifier name.
+>>> is_identifier ( "foo" )
+True
+
+
+>>> is_identifier ( "foo+bar" )
+False
+
+
+>>> is_identifier ( "from" )
+False
+
+
+By default, we check whether s
is a single valid identifier, meaning
+dots are not allowed. If dotted=True
, then we check each dotted
+component:
+>>> is_identifier ( "foo.bar" )
+False
+
+>>> is_identifier ( "foo.bar" , dotted = True )
+True
+
+>>> is_identifier ( "foo..bar" , dotted = True )
+False
+
+>>> is_identifier ( "foo.from" , dotted = True )
+False
+
+
+By default, the string must comprise a valid identifier. If
+prefix=True
, then allow strings that are prefixes of valid identifiers.
+Prefix=False excludes the empty string, strings with a trailing dot, and
+strings with a trailing keyword component, but prefix=True does not
+exclude these.
+>>> is_identifier ( "foo.bar." , dotted = True )
+False
+
+
+>>> is_identifier ( "foo.bar." , dotted = True , prefix = True )
+True
+
+
+>>> is_identifier ( "foo.or" , dotted = True )
+False
+
+
+>>> is_identifier ( "foo.or" , dotted = True , prefix = True )
+True
+
+
+
+Parameters:
+
+dotted (bool
) – If False
(default), then the input must be a single name such as
+“foo”. If True
, then the input can be a single name or a dotted name
+such as “foo.bar.baz”.
+prefix (bool
) – If False
(Default), then the input must be a valid identifier. If
+True
, then the input can be a valid identifier or the prefix of a
+valid identifier.
+
+
+Return type:
+bool
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/importclns.html b/api/importclns.html
new file mode 100644
index 00000000..7ed38276
--- /dev/null
+++ b/api/importclns.html
@@ -0,0 +1,1083 @@
+
+
+
+
+
+
+
+
+
_importclns module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_importclns module
+
+
+exception pyflyby._importclns. ConflictingImportsError
+
+
+
+
+class pyflyby._importclns. ImportMap ( arg )
+A map from import fullname identifier to fullname identifier.
+>>> ImportMap ({ 'a.b' : 'aa.bb' , 'a.b.c' : 'aa.bb.cc' })
+ImportMap({'a.b': 'aa.bb', 'a.b.c': 'aa.bb.cc'})
+
+
+An ImportMap
is an immutable data structure.
+
+
+_EMPTY : ClassVar
[ ImportSet
] = ImportMap({})
+
+
+
+
+_data : Dict
+
+
+
+
+classmethod _from_map ( arg )
+
+
+
+
+classmethod _merge ( maps )
+
+
+
+
+items ( )
+
+
+
+
+iteritems ( )
+
+
+
+
+iterkeys ( )
+
+
+
+
+keys ( )
+
+
+
+
+values ( )
+
+
+
+
+without_imports ( removals )
+Return a copy of self without the given imports.
+Matches both keys and values.
+
+
+
+
+
+
+class pyflyby._importclns. ImportSet ( arg , ignore_nonimports = False , ignore_shadowed = False )
+Representation of a set of imports organized into import statements.
+>>> ImportSet ( '''
+... from m1 import f1
+... from m2 import f1
+... from m1 import f2
+... import m3.m4 as m34
+... ''' )
+ImportSet('''
+ from m1 import f1, f2
+ from m2 import f1
+ from m3 import m4 as m34
+''')
+
+
+An ImportSet
is an immutable data structure.
+
+
+_EMPTY : ClassVar
[ ImportSet
] = ImportSet(''' ''')
+
+
+
+
+property _by_module_name
+return:
+(mapping from name to __future__ imports,
+mapping from name to non-‘from’ imports,
+mapping from name to ‘from’ imports)
+
+
+
+
+classmethod _from_args ( args , ignore_nonimports = False , ignore_shadowed = False )
+
+Parameters:
+
+ignore_nonimports (bool
) – If False
, complain about non-imports. If True
, ignore
+non-imports.
+ignore_shadowed – See ImportSet.__new__ .
+
+
+Return type:
+ImportSet
+
+
+
+
+
+
+classmethod _from_imports ( imports , ignore_shadowed = False )
+
+Parameters:
+ignore_shadowed (bool
) – See ImportSet.__new__ .
+
+Return type:
+ImportSet
+
+
+
+
+
+
+_importset : FrozenSet
[ Import
]
+
+
+
+
+property by_import_as
+Map from import_as
to Import .
+>>> ImportSet ( 'from aa.bb import cc as dd' ) . by_import_as
+{'dd': (Import('from aa.bb import cc as dd'),)}
+
+
+
+Return type:
+dict
mapping from str
to tuple of Import s
+
+
+
+
+
+
+property conflicting_imports
+Returns imports that conflict with each other.
+>>> ImportSet ( 'import b \n from f import a as b \n ' ) . conflicting_imports
+('b',)
+
+
+>>> ImportSet ( 'import b \n from f import a \n ' ) . conflicting_imports
+()
+
+
+
+Return type:
+bool
+
+
+
+
+
+
+property flags
+If this contains __future__ imports, then the bitwise-ORed of the
+compiler_flag values associated with the features. Otherwise, 0.
+
+
+
+
+get_statements ( separate_from_imports = True )
+Canonicalized ImportStatement s.
+These have been merged by module and sorted.
+>>> importset = ImportSet ( '''
+... import a, b as B, c, d.dd as DD
+... from __future__ import division
+... from _hello import there
+... from _hello import *
+... from _hello import world
+... ''' )
+
+
+>>> for s in importset . get_statements (): print ( s )
+from __future__ import division
+import a
+import b as B
+import c
+from _hello import *
+from _hello import there, world
+from d import dd as DD
+
+
+
+Return type:
+tuple
of ImportStatement s
+
+
+
+
+
+
+property imports
+Canonicalized imports, in the same order as self.statements
.
+
+Return type:
+tuple
of Import s
+
+
+
+
+
+
+property member_names
+Map from parent module/package fullname
to known member names.
+>>> impset = ImportSet ( "import numpy.linalg.info \n from sys import exit as EXIT" )
+>>> import pprint
+>>> pprint . pprint ( impset . member_names )
+{'': ('EXIT', 'numpy', 'sys'),
+ 'numpy': ('linalg',),
+ 'numpy.linalg': ('info',),
+ 'sys': ('exit',)}
+
+
+This is used by the autoimporter module for implementing tab completion.
+
+Return type:
+dict
mapping from str
to tuple of str
+
+
+
+
+
+
+pretty_print ( params = None , allow_conflicts = False )
+Pretty-print a block of import statements into a single string.
+
+Return type:
+str
+
+
+
+
+
+
+property statements
+Canonicalized ImportStatement s.
+These have been merged by module and sorted.
+
+Return type:
+tuple
of ImportStatement s
+
+
+
+
+
+
+with_imports ( other )
+Return a new ImportSet that is the union of self
and
+new_imports
.
+>>> impset = ImportSet ( 'from m import t1, t2, t3' )
+>>> impset . with_imports ( 'import m.t2a as t2b' )
+ImportSet('''
+ from m import t1, t2, t2a as t2b, t3
+''')
+
+
+
+Return type:
+ImportSet
+
+
+
+
+
+
+without_imports ( removals )
+Return a copy of self without the given imports.
+>>> imports = ImportSet ( 'from m import t1, t2, t3, t4' )
+>>> imports . without_imports ([ 'from m import t3' ])
+ImportSet('''
+ from m import t1, t2, t4
+''')
+
+
+
+Return type:
+ImportSet
+
+
+
+
+
+
+
+
+exception pyflyby._importclns. NoSuchImportError
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/importdb.html b/api/importdb.html
new file mode 100644
index 00000000..61eef80b
--- /dev/null
+++ b/api/importdb.html
@@ -0,0 +1,852 @@
+
+
+
+
+
+
+
+
+
_importdb module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_importdb module
+
+
+pyflyby._importdb. _ancestors_on_same_partition ( filename )
+Generate ancestors of filename
that exist and are on the same partition
+as the first existing ancestor of filename
.
+For example, suppose a partition is mounted on /u/homer; /u is a different
+partition. Suppose /u/homer/aa exists but /u/homer/aa/bb does not exist.
+Then:
+>>> _ancestors_on_same_partition ( Filename ( "/u/homer/aa/bb/cc" ))
+[Filename("/u/homer", Filename("/u/homer/aa")]
+
+
+
+Return type:
+list
of Filename
+
+
+
+
+
+
+pyflyby._importdb. _expand_tripledots ( pathnames , target_dirname )
+Expand pathnames of the form ".../foo/bar"
as “../../foo/bar”,
+“../foo/bar”, “./foo/bar” etc., up to the oldest ancestor with the same
+st_dev.
+For example, suppose a partition is mounted on /u/homer; /u is a different
+partition. Then:
+>>> _expand_tripledots ([ "/foo" , ".../tt" ], "/u/homer/aa" )
+[Filename("/foo"), Filename("/u/homer/tt"), Filename("/u/homer/aa/tt")]
+
+
+
+Return type:
+list
of Filename
+
+
+
+
+
+
+pyflyby._importdb. _find_etc_dirs ( )
+
+
+
+
+pyflyby._importdb. _get_env_var ( env_var_name , default )
+Get an environment variable and split on “:”, replacing -
with the
+default.
+
+
+
+
+pyflyby._importdb. _get_python_path ( env_var_name , default_path , target_dirname )
+Expand an environment variable specifying pyflyby input config files.
+
+
+Default to default_path
if the environment variable is undefined.
+Process colon delimiters.
+Replace “-” with default_path
.
+Expand triple dots.
+Recursively traverse directories.
+
+
+
+Return type:
+tuple
of Filename
s
+
+
+
+
+
+
+pyflyby._importdb. _get_st_dev ( filename )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/imports2s.html b/api/imports2s.html
new file mode 100644
index 00000000..d794fbbb
--- /dev/null
+++ b/api/imports2s.html
@@ -0,0 +1,982 @@
+
+
+
+
+
+
+
+
+
_imports2s module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_imports2s module
+
+
+exception pyflyby._imports2s. ImportAlreadyExistsError
+
+
+
+
+pyflyby._imports2s. ImportPathForRelativeImportsCtx ( codeblock )
+Context manager that temporarily modifies sys.path
so that relative
+imports for the given codeblock
work as expected.
+
+
+
+
+
+
+exception pyflyby._imports2s. LineNumberAmbiguousError
+
+
+
+
+exception pyflyby._imports2s. LineNumberNotFoundError
+
+
+
+
+exception pyflyby._imports2s. NoImportBlockError
+
+
+
+
+class pyflyby._imports2s. SourceToSourceFileImportsTransformation ( arg )
+
+
+add_import ( imp , lineno = inf )
+Add the specified import. Picks an existing global import block to
+add to, or if none found, creates a new one near the beginning of the
+module.
+
+Parameters:
+lineno – Line before which to add the import. Inf
means no constraint.
+
+
+
+
+
+
+find_import_block_by_lineno ( lineno )
+Find the import block containing the given line number.
+
+Return type:
+SourceToSourceImportBlockTransformation
+
+
+
+
+
+
+
+
+
+
+insert_new_import_block ( )
+Adds a new empty imports block. It is added before the first
+non-comment statement. Intended to be used when the input contains no
+import blocks (before uses).
+
+
+
+
+preprocess ( )
+
+
+
+
+pretty_print ( params = None )
+
+
+
+
+remove_import ( imp , lineno )
+Remove the given import.
+
+
+
+
+
+
+select_import_block_by_closest_prefix_match ( imp , max_lineno )
+Heuristically pick an import block that imp
“fits” best into. The
+selection is based on the block that contains the import with the
+longest common prefix.
+
+Parameters:
+max_lineno – Only return import blocks earlier than max_lineno
.
+
+Return type:
+SourceToSourceImportBlockTransformation
+
+
+
+
+
+
+
+
+class pyflyby._imports2s. SourceToSourceImportBlockTransformation ( arg )
+
+
+preprocess ( )
+
+
+
+
+pretty_print ( params = None )
+
+
+
+
+
+
+class pyflyby._imports2s. SourceToSourceTransformation ( arg )
+
+
+_output : PythonBlock
+
+
+
+
+preprocess ( )
+
+
+
+
+pretty_print ( params = None )
+
+
+
+
+
+
+class pyflyby._imports2s. SourceToSourceTransformationBase ( arg )
+
+
+classmethod _from_source_code ( codeblock )
+
+
+
+
+input : PythonBlock
+
+
+
+
+output ( params = None )
+Pretty-print and return as a PythonBlock .
+
+Return type:
+PythonBlock
+
+
+
+
+
+
+preprocess ( )
+
+
+
+
+pretty_print ( params = None )
+
+
+
+
+
+
+pyflyby._imports2s. fix_unused_and_missing_imports ( codeblock , add_missing = True , remove_unused = 'AUTOMATIC' , add_mandatory = True , db = None , params = None )
+Check for unused and missing imports, and fix them automatically.
+Also formats imports.
+In the example below, m1
and m3
are unused, so are automatically
+removed. np
was undefined, so an import numpy as np
was
+automatically added.
+>>> codeblock = PythonBlock (
+... 'from foo import m1, m2, m3, m4 \n '
+... 'm2, m4, np.foo' , filename = "/tmp/foo.py" )
+
+
+>>> print ( fix_unused_and_missing_imports ( codeblock , add_mandatory = False ))
+[PYFLYBY] /tmp/foo.py: removed unused 'from foo import m1'
+[PYFLYBY] /tmp/foo.py: removed unused 'from foo import m3'
+[PYFLYBY] /tmp/foo.py: added 'import numpy as np'
+import numpy as np
+from foo import m2, m4
+m2, m4, np.foo
+
+
+
+Return type:
+PythonBlock
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/importstmt.html b/api/importstmt.html
new file mode 100644
index 00000000..821d1bf7
--- /dev/null
+++ b/api/importstmt.html
@@ -0,0 +1,894 @@
+
+
+
+
+
+
+
+
+
_importstmt module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_importstmt module
+
+
+class pyflyby._importstmt. ImportFormatParams ( * args , ** kwargs )
+
+
+align_future : bool
= False
+Whether ‘from __future__ import …’ statements should be aligned with
+others. If False, uses a single space after the ‘from’ and ‘import’
+keywords.
+
+
+
+
+align_imports : Union
[ bool
, set
, list
, tuple
, str
] = True
+Whether and how to align ‘from modulename import aliases…’. If True
,
+then the ‘import’ keywords will be aligned within a block. If an integer,
+then the ‘import’ keyword will always be at that column. They will be
+wrapped if necessary.
+
+
+
+
+from_spaces : int
= 1
+The number of spaces after the ‘from’ keyword. (Must be at least 1.)
+
+
+
+
+separate_from_imports : bool
= True
+Whether all ‘from … import …’ in an import block should come after
+‘import …’ statements. separate_from_imports = False
works well with
+from_spaces = 3
. (‘from __future__ import …’ always comes first.)
+
+
+
+
+
+
+class pyflyby._importstmt. ImportSplit ( module_name , member_name , import_as )
+Representation of a single import at the token level:
+from [ ... ] < module_name > import < member_name > as < import_as >
+
+
+
+If <module_name> is None
, then there is no “from” clause; instead just:: import <member_name> as <import_as>
+
+
+
+
+_asdict ( )
+Return a new dict which maps field names to their values.
+
+
+
+
+_field_defaults = {}
+
+
+
+
+_fields = ('module_name', 'member_name', 'import_as')
+
+
+
+
+classmethod _make ( iterable )
+Make a new ImportSplit object from a sequence or iterable
+
+
+
+
+_replace ( ** kwds )
+Return a new ImportSplit object replacing specified fields with new values
+
+
+
+
+import_as
+Alias for field number 2
+
+
+
+
+member_name
+Alias for field number 1
+
+
+
+
+module_name
+Alias for field number 0
+
+
+
+
+
+
+pyflyby._importstmt. _validate_alias ( arg )
+Ensure each alias is a tuple (str, None|str), and return it.
+
+Return type:
+Tuple
[str
, Optional
[str
]]
+
+
+
+
+
+
+pyflyby._importstmt. read_black_config ( )
+Read the black configuration from pyproject.toml
+
+Return type:
+Dict
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/interactive.html b/api/interactive.html
new file mode 100644
index 00000000..b6c88171
--- /dev/null
+++ b/api/interactive.html
@@ -0,0 +1,1405 @@
+
+
+
+
+
+
+
+
+
_interactive module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_interactive module
+
+
+class pyflyby._interactive. AutoImporter ( arg = Ellipsis )
+Auto importer enable state.
+The state is attached to an IPython “application”.
+
+
+_advise ( joinpoint )
+
+
+
+
+_ast_transformer : Any
+
+
+
+
+_autoimported_this_cell : Dict
[ Any
, Any
]
+
+
+
+
+classmethod _construct ( app )
+Create a new AutoImporter for app
.
+
+
+
+
+
+
+_continue_enable ( )
+
+
+
+
+_disablers : List
[ Any
]
+
+
+
+
+_enable_ast_hook ( ip )
+Enable a hook somewhere in the source => parsed AST => compiled code
+pipeline.
+
+
+
+
+_enable_completer_hooks ( completer )
+
+
+
+
+_enable_completion_hook ( ip )
+Enable a tab-completion hook.
+
+
+
+
+_enable_debugger_hook ( ip )
+
+
+
+
+_enable_initializer_hooks ( app )
+
+
+
+
+_enable_internal ( )
+
+
+
+
+_enable_ipython_shell_bugfixes ( ip )
+Enable some advice that’s actually just fixing bugs in IPython.
+
+
+
+
+_enable_kernel_manager_hook ( app )
+
+
+
+
+_enable_ofind_hook ( ip )
+Enable a hook of _ofind(), which is used for pinfo, autocall, etc.
+
+
+
+
+_enable_prun_hook ( ip )
+Enable a hook so that %prun will autoimport.
+
+
+
+
+_enable_reset_hook ( ip )
+
+
+
+
+_enable_run_hook ( ip )
+Enable a hook so that %run will autoimport.
+
+
+
+
+_enable_shell_hooks ( app )
+Enable hooks to run auto_import before code execution.
+
+
+
+
+_enable_start_kernel_hook ( kernel_manager )
+
+
+
+
+_enable_time_hook ( ip )
+Enable a hook so that %time will autoimport.
+
+
+
+
+_enable_timeit_hook ( ip )
+Enable a hook so that %timeit will autoimport.
+
+
+
+
+_errored : bool
+
+
+
+
+classmethod _from_app ( app )
+
+Return type:
+AutoImporter
+
+
+
+
+
+
+_ip : Any
+
+
+
+
+_safe_call ( function , * args , ** kwargs )
+
+
+
+
+_state : _EnableState
+
+
+
+
+app : Any
+
+
+
+
+auto_import ( arg , namespaces = None , raise_on_error = 'if_debug' , on_error = None )
+
+
+
+
+compile_with_autoimport ( src , filename , mode , flags = 0 )
+
+
+
+
+complete_symbol ( fullname , namespaces , raise_on_error = 'if_debug' , on_error = None )
+
+
+
+
+db : ImportDB
+
+
+
+
+disable ( )
+Turn off auto-importer in the current IPython session.
+
+
+
+
+enable ( even_if_previously_errored = False )
+Turn on the auto-importer in the current IPython session.
+
+
+
+
+reset_state_new_cell ( )
+
+
+
+
+
+
+pyflyby._interactive. InterceptPrintsDuringPromptCtx ( ip )
+Decorator that hooks our logger so that:
+1. Before the first print , if any , print an extra newline .
+2. Upon context exit , if any lines were printed , redisplay the prompt .
+
+
+
+
+
+
+
+
+exception pyflyby._interactive. NoActiveIPythonAppError
+Exception raised when there is no current IPython application instance.
+
+
+
+
+exception pyflyby._interactive. NoIPythonPackageError
+Exception raised when the IPython package is not installed in the system.
+
+
+
+
+pyflyby._interactive. UpdateIPythonStdioCtx ( )
+Context manager that updates IPython’s cached stdin/stdout/stderr handles
+to match the current values of sys.stdin/sys.stdout/sys.stderr.
+
+
+
+
+class pyflyby._interactive. _DummyIPythonEmbeddedApp ( shell )
+Small wrapper around an InteractiveShellEmbed .
+
+
+
+
+class pyflyby._interactive. _EnableState
+
+
+DISABLED = 'DISABLED'
+
+
+
+
+DISABLING = 'DISABLING'
+
+
+
+
+ENABLED = 'ENABLED'
+
+
+
+
+ENABLING = 'ENABLING'
+
+
+
+
+
+
+class pyflyby._interactive. _IPython010TerminalApplication
+Shim class that mimics IPython 0.11+ application classes, for use in
+IPython 0.10.
+
+
+_instance = None
+
+
+
+
+init_shell ( )
+
+
+
+
+initialize ( argv = None )
+
+
+
+
+classmethod instance ( )
+
+
+
+
+start ( )
+
+
+
+
+
+
+pyflyby._interactive. _app_is_initialized ( app )
+Return whether app.initialize()
has been called.
+
+Return type:
+bool
+
+
+
+
+
+
+pyflyby._interactive. _auto_import_in_pdb_frame ( pdb_instance , arg )
+
+
+
+
+pyflyby._interactive. _enable_pdb_hooks ( pdb_instance )
+
+
+
+
+pyflyby._interactive. _enable_terminal_pdb_hooks ( pdb_instance , auto_importer = None )
+
+
+
+
+pyflyby._interactive. _generate_enabler_code ( )
+Generate code for enabling the auto importer.
+
+Return type:
+str
+
+
+
+
+
+
+pyflyby._interactive. _get_IPdb_class ( )
+Get the IPython (core) Pdb class.
+
+
+
+
+pyflyby._interactive. _get_TerminalPdb_class ( )
+Get the IPython TerminalPdb class.
+
+
+
+
+pyflyby._interactive. _get_ipython_app ( )
+Get an IPython application instance, if we are inside an IPython session.
+If there isn’t already an IPython application, raise an exception; don’t
+create one.
+If there is a subapp, return it.
+
+Return type:
+BaseIPythonApplication or an object that mimics some of its behavior
+
+
+
+
+
+
+pyflyby._interactive. _get_ipython_color_scheme ( app )
+Get the configured IPython color scheme.
+
+Parameters:
+app (TerminalIPythonApp ) – An initialized IPython terminal application.
+
+Return type:
+str
+
+
+
+
+
+
+pyflyby._interactive. _get_or_create_ipython_kernel_app ( )
+Create/get the singleton IPython kernel application.
+
+Return type:
+callable
+
+Returns:
+The function that can be called to start the kernel application.
+
+
+
+
+
+
+pyflyby._interactive. _get_or_create_ipython_terminal_app ( )
+Create/get the singleton IPython terminal application.
+
+Return type:
+TerminalIPythonApp
+
+Raises:
+NoIPythonPackageError – IPython is not installed in the system.
+
+
+
+
+
+
+pyflyby._interactive. _get_pdb_if_is_in_pdb ( )
+Return the current Pdb instance, if we’re currently called from Pdb.
+
+Return type:
+pdb.Pdb
or NoneType
+
+
+
+
+
+
+pyflyby._interactive. _initialize_and_start_app_with_autoimporter ( app , argv )
+Initialize and start an IPython app, with autoimporting enabled.
+
+
+
+
+
+
+pyflyby._interactive. _install_in_ipython_config_file_010 ( )
+Implementation of install_in_ipython_config_file for IPython 0.10.
+
+
+
+
+pyflyby._interactive. _install_in_ipython_config_file_011 ( )
+Implementation of install_in_ipython_config_file for IPython 0.11.
+
+
+
+
+pyflyby._interactive. _install_in_ipython_config_file_012 ( )
+Implementation of install_in_ipython_config_file for IPython 0.12+.
+Tested with IPython 0.12, 0.13, 1.0, 1.2, 2.0, 2.1, 2.2, 2.3, 2.4, 3.0,
+3.1, 3.2, 4.0.
+
+
+
+
+pyflyby._interactive. _install_in_ipython_config_file_40 ( )
+Implementation of install_in_ipython_config_file for IPython 4.0+.
+
+
+
+
+pyflyby._interactive. _ipython_in_multiline ( ip )
+Return False
if the user has entered only one line of input so far,
+including the current line, or True
if it is the second or later line.
+
+Return type:
+bool
+
+
+
+
+
+
+pyflyby._interactive. _ipython_namespaces ( ip )
+Return the (global) namespaces used for IPython.
+The ordering follows IPython convention of most-local to most-global.
+
+Return type:
+list
+
+Returns:
+List of (name, namespace_dict) tuples.
+
+
+
+
+
+
+pyflyby._interactive. _list_members_for_completion ( obj , ip )
+Enumerate the existing member attributes of an object.
+This emulates the regular Python/IPython completion items.
+It does not include not-yet-imported submodules.
+
+Parameters:
+obj – Object whose member attributes to enumerate.
+
+Return type:
+list
of str
+
+
+
+
+
+
+pyflyby._interactive. _python_can_import_pyflyby ( expected_path , sys_path_entry = None )
+Try to figure out whether python (when started from scratch) can get the
+same pyflyby package as the current process.
+
+
+
+
+pyflyby._interactive. _skip_frames ( frame , ignore_pkgs )
+
+
+
+
+pyflyby._interactive. complete_symbol ( fullname , namespaces , db = None , autoimported = None , ip = None , allow_eval = False )
+Enumerate possible completions for fullname
.
+Includes globals and auto-importable symbols.
+>>> complete_symbol ( "threadi" , [{}])
+[...'threading'...]
+
+
+Completion works on attributes, even on modules not yet imported - modules
+are auto-imported first if not yet imported:
+>>> ns = {}
+>>> complete_symbol ( "threading.Threa" , namespaces = [ ns ])
+[PYFLYBY] import threading
+['threading.Thread', 'threading.ThreadError']
+
+>>> 'threading' in ns
+True
+
+>>> complete_symbol ( "threading.Threa" , namespaces = [ ns ])
+['threading.Thread', 'threading.ThreadError']
+
+
+We only need to import parent modules (packages) of the symbol being
+completed. If the user asks to complete “foo.bar.quu<TAB>”, we need to
+import foo.bar, but we don’t need to import foo.bar.quux.
+
+Parameters:
+
+fullname (str
) – String to complete. (“Full” refers to the fact that it should contain
+dots starting from global level.)
+namespaces (dict
or list
of dict
) – Namespaces of (already-imported) globals.
+db (importDB ) – Import database to use.
+ip (InteractiveShell
) – IPython shell instance if in IPython; None
to assume not in IPython.
+allow_eval – Whether to allow evaluating code, which is necessary to allow completing
+e.g. ‘foo[0].bar<TAB>’ or ‘foo().bar<TAB>’. Note that IPython will only
+pass such strings if IPCompleter.greedy is configured to True by the
+user.
+
+
+Return type:
+list
of str
+
+Returns:
+Completion candidates.
+
+
+
+
+
+
+pyflyby._interactive. get_global_namespaces ( ip )
+Get the global interactive namespaces.
+
+Parameters:
+ip (InteractiveShell
) – IPython shell or None
to assume not in IPython.
+
+Return type:
+list
of dict
+
+
+
+
+
+
+pyflyby._interactive. get_ipython_terminal_app_with_autoimporter ( )
+Return an initialized TerminalIPythonApp
.
+If a TerminalIPythonApp
has already been created, then use it (whether
+we are inside that app or not). If there isn’t already one, then create
+one. Enable the auto importer, if it hasn’t already been enabled. If the
+app hasn’t been initialized yet, then initialize() it (but don’t start()
+it).
+
+Return type:
+TerminalIPythonApp
+
+Raises:
+NoIPythonPackageError – IPython is not installed in the system.
+
+
+
+
+
+
+pyflyby._interactive. new_IPdb_instance ( )
+Create a new Pdb instance.
+If IPython is available, then use IPython’s Pdb. Initialize a new IPython
+terminal application if necessary.
+If the IPython package is not installed in the system, then use regular Pdb.
+Enable the auto importer.
+
+Return type:
+Pdb
+
+
+
+
+
+
+pyflyby._interactive. print_verbose_tb ( * exc_info )
+Print a traceback, using IPython’s ultraTB if possible.
+
+Parameters:
+exc_info – 3 arguments as returned by sys.exc_info().
+
+
+
+
+
+
+pyflyby._interactive. run_ipython_line_magic ( arg )
+Run IPython magic command.
+If necessary, start an IPython terminal app to do so.
+
+
+
+
+pyflyby._interactive. start_ipython_kernel_with_autoimporter ( argv = None )
+Start IPython kernel with autoimporter enabled.
+
+
+
+
+pyflyby._interactive. start_ipython_with_autoimporter ( argv = None , app = None , _user_ns = None )
+Start IPython (terminal) with autoimporter enabled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/livepatch.html b/api/livepatch.html
new file mode 100644
index 00000000..b134ad1e
--- /dev/null
+++ b/api/livepatch.html
@@ -0,0 +1,1003 @@
+
+
+
+
+
+
+
+
+
_livepatch module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_livepatch module
+livepatch/xreload: Alternative to reload().
+xreload performs a “live patch” of the modules/classes/functions/etc that have
+already been loaded in memory. It does so by executing the module in a
+scratch namespace, and then patching classes, methods and functions in-place.
+New objects are copied into the target namespace.
+This addresses cases where one module imported functions from another
+module.
+For example, suppose m1.py contains:
+from m2 import foo
+def print_foo ():
+ return foo ()
+
+
+and m2.py contains:
+
+If you edit m2.py and modify foo
, then reload(m2) on its own would not do
+what you want. You would also need to reload(m1) after reload(m2). This is
+because the built-in reload affects the module being reloaded, but references
+to the old module remain. On the other hand, xreload() patches the existing
+m2.foo, so that live references to it are updated.
+In table form:
+Undesired effect : reload ( m2 )
+Undesired effect : reload ( m1 ); reload ( m2 )
+Desired effect : reload ( m2 ); reload ( m1 )
+
+Desired effect : xreload ( m2 )
+Desired effect : xreload ( m1 ); xreload ( m2 )
+Desired effect : xreload ( m2 ); xreload ( m1 )
+
+
+Even with just two modules, we can see that xreload() is an improvement. When
+working with a large set of interdependent modules, it becomes infeasible to
+know the precise sequence of reload() calls that would be necessary.
+xreload() really shines in that case.
+This implementation of xreload() was originally based the following
+mailing-list post by Guido van Rossum:
+
+
+
+Customizing behavior
+If a class/function/module/etc has an attribute __livepatch__, then this
+function is called instead of performing the regular livepatch mechanism.
+The __livepatch__() function is called with the following arguments:
+
+
+These arguments are matched by name and are passed only if the
+__livepatch__
function is declared to take such named arguments or it takes
+**kwargs. If the __livepatch__
function takes **kwargs, it should ignore
+unknown arguments, in case new parameters are added in the future.
+If the object being updated is an object instance, and __livepatch__
is a
+method, then the function is bound to the new object, i.e. the self
+parameter is the same as new
.
+If the __livepatch__
function successfully patched the old
object, then
+it should return old
. If it is unable to patch, it should return new
.
+Examples
+By default, any attributes on an existing function are updated with ones from
+the new function. If you want a memoized function to keep its cache across
+xreload, you could implement that like this:
+def memoize ( function ):
+ cache = {}
+ def wrapped_fn ( * args ):
+ try :
+ return cache [ args ]
+ except KeyError :
+ result = function ( * args )
+ cache [ args ] = result
+ return result
+ wrapped_fn . cache = cache
+ def my_livepatch ( old , new , do_livepatch ):
+ keep_cache = dict ( old . cache )
+ result = do_livepatch ()
+ result . cache . update ( keep_cache )
+ return result
+ wrapped_fn . __livepatch__ = my_livepatch
+ return wrapped_fn
+
+
+XXX change example b/c cache is already cleared by default
+XXX maybe global cache
+
+
+class MyObj(…):
+def __livepatch__(self, old): self.__dict__.update(old.__dict__)
+return self
+
+
+
+class MyObj(…):
+def __init__(self): self._my_cache = {}
+
+def __livepatch__(self, old, do_livepatch): keep_cache = dict(old._my_cache)
+result = do_livepatch()
+result._my_cache.update(keep_cache)
+return result
+
+
+
+
+
+XXX test
+
+
+
+exception pyflyby._livepatch. UnknownModuleError
+
+
+
+
+pyflyby._livepatch. _format_age ( t )
+
+
+
+
+pyflyby._livepatch. _get_definition_module ( obj )
+Get the name of the module that an object is defined in, or None
if
+unknown.
+For classes and functions, this returns the __module__
attribute.
+For object instances, this returns None
, ignoring the __module__
+attribute. The reason is that the __module__
attribute on an instance
+just gives the module that the class was defined in, which is not
+necessarily the module where the instance was constructed.
+
+Return type:
+str
+
+
+
+
+
+
+pyflyby._livepatch. _get_module_py_file ( module )
+
+
+
+
+pyflyby._livepatch. _interpret_module ( arg )
+
+
+
+
+pyflyby._livepatch. _livepatch__class ( oldclass , newclass , modname , cache , visit_stack )
+Livepatch a class.
+This is similar to _livepatch__dict(oldclass.__dict__, newclass.__dict__).
+However, we can’t just operate on the dict, because class dictionaries are
+special objects that don’t allow setitem, even though we can setattr on
+the class.
+
+
+
+
+pyflyby._livepatch. _livepatch__dict ( old_dict , new_dict , modname , cache , visit_stack )
+Livepatch a dict.
+
+
+
+
+pyflyby._livepatch. _livepatch__function ( old_func , new_func , modname , cache , visit_stack )
+Livepatch a function.
+
+
+
+
+pyflyby._livepatch. _livepatch__method ( old_method , new_method , modname , cache , visit_stack )
+Livepatch a method.
+
+
+
+
+pyflyby._livepatch. _livepatch__module ( old_mod , new_mod , modname , cache , visit_stack )
+Livepatch a module.
+
+
+
+
+pyflyby._livepatch. _livepatch__object ( oldobj , newobj , modname , cache , visit_stack )
+Livepatch a general object.
+
+
+
+
+pyflyby._livepatch. _livepatch__setattr ( oldobj , newobj , name , modname , cache , visit_stack )
+Livepatch something via setattr, i.e.:
+oldobj . { name } = livepatch ( oldobj . { name }, newobj . { name }, ... )
+
+
+
+
+
+
+pyflyby._livepatch. _xreload_module ( module , filename , force = False )
+Reload a module in place, using livepatch.
+
+Parameters:
+
+module (ModuleType
) – Module to reload.
+force – Whether to reload even if the module has not been modified since the
+previous load. If False
, then do nothing. If True
, then reload.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/log.html b/api/log.html
new file mode 100644
index 00000000..7773403d
--- /dev/null
+++ b/api/log.html
@@ -0,0 +1,884 @@
+
+
+
+
+
+
+
+
+
_log module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_log module
+
+
+class pyflyby._log. PyflybyLogger ( name , level )
+
+
+HookCtx ( pre , post )
+
+
+
+
+_LEVELS = {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'WARNING': 30}
+
+
+
+
+property debug_enabled
+
+
+
+
+property info_enabled
+
+
+
+
+set_level ( level )
+Set the pyflyby logger’s level to level
.
+
+
+
+
+
+
+
+
+pyflyby._log. _PromptToolkitStdoutProxyRawCtx ( proxy )
+Hack to defeat the “feature” where
+prompt_toolkit.interface._StdoutProxy(sys.stderr) causes ANSI escape codes
+to not be written.
+
+
+
+
+class pyflyby._log. _PyflybyHandler ( level = 0 )
+
+
+HookCtx ( pre , post )
+
+Enter a context where:
+pre
is called before the first time a log record is emitted
+during the context, and
+post
is called at the end of the context, if any log records
+were emitted during the context.
+
+
+
+
+Parameters:
+
+pre (callable
) – Function to call before the first time something is logged during
+this context.
+post (callable
) – Function to call before returning from the context, if anything was
+logged during the context.
+
+
+
+
+
+
+
+_interactive_prefix = '\x1b[0m\x1b[33m[PYFLYBY]\x1b[0m '
+
+
+
+
+_logged_anything_during_context = False
+
+
+
+
+_noninteractive_prefix = '[PYFLYBY] '
+
+
+
+
+_pre_log_function = None
+
+
+
+
+emit ( record )
+Emit a log record.
+
+
+
+
+
+
+pyflyby._log. _is_interactive ( file )
+
+
+
+
+pyflyby._log. _is_ipython ( )
+Returns true if we’re currently running inside IPython.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/modules.html b/api/modules.html
new file mode 100644
index 00000000..21a5ab88
--- /dev/null
+++ b/api/modules.html
@@ -0,0 +1,955 @@
+
+
+
+
+
+
+
+
+
_modules module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_modules module
+
+
+exception pyflyby._modules. ErrorDuringImportError
+Exception raised by import_module if the module exists but an exception
+occurred while attempting to import it. That nested exception could be
+ImportError, e.g. if a module tries to import another module that doesn’t
+exist.
+
+
+
+
+class pyflyby._modules. ModuleHandle ( arg )
+A handle to a module.
+
+
+_cls_cache : Dict
[ Any
, Any
] = {}
+
+
+
+
+classmethod _from_filename ( filename )
+
+
+
+
+classmethod _from_module ( module )
+
+
+
+
+classmethod _from_modulename ( modulename )
+
+
+
+
+static _member_from_node ( node )
+
+
+
+
+property ancestors
+
+
+
+
+property block
+
+
+
+
+classmethod containing ( identifier )
+Try to find the module that defines a name such as a.b.c
by trying
+to import a
, a.b
, and a.b.c
.
+
+Returns:
+The name of the ‘deepest’ module (most commonly it would be a.b
+in this example).
+
+Return type:
+Module
+
+
+
+
+
+
+property exists
+Return whether the module exists, according to pkgutil.
+Note that this doesn’t work for things that are only known by using
+sys.meta_path.
+
+
+
+
+property exports
+Get symbols exported by this module.
+Note that this will not recognize symbols that are dynamically
+introduced to the module’s namespace or __all__ list.
+
+Return type:
+ImportSet or None
+
+Returns:
+Exports, or None
if nothing exported.
+
+
+
+
+
+
+property filename
+Return the filename, if appropriate.
+The module itself will not be imported, but if the module is not a
+top-level module/package, accessing this attribute may cause the
+parent package to be imported.
+
+Return type:
+Filename
+
+
+
+
+
+
+static list ( )
+Enumerate all top-level packages/modules.
+
+Return type:
+tuple
of ModuleHandle s
+
+
+
+
+
+
+property module
+Return the module instance.
+
+Return type:
+types.ModuleType
+
+Raises:
+
+
+
+
+
+
+
+name : DottedIdentifier
+
+
+
+
+property parent
+
+
+
+
+property submodules
+Enumerate the importable submodules of this module.
+>>> ModuleHandle ( "email" ) . submodules
+(..., ModuleHandle('email.encoders'), ..., ModuleHandle('email.mime'), ...)
+
+
+
+Return type:
+tuple
of ModuleHandle s
+
+
+
+
+
+
+property text
+
+
+
+
+
+
+pyflyby._modules. _my_iter_modules ( path , prefix = '' )
+
+
+
+
+pyflyby._modules. import_module ( module_name )
+
+
+
+
+pyflyby._modules. pyc_to_py ( filename )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/parse.html b/api/parse.html
new file mode 100644
index 00000000..6399344c
--- /dev/null
+++ b/api/parse.html
@@ -0,0 +1,1162 @@
+
+
+
+
+
+
+
+
+
_parse module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_parse module
+
+
+class pyflyby._parse. AnnotatedAst
+
+
+col_offset : int
+
+
+
+
+endpos : FilePos
+
+
+
+
+flags : str
+
+
+
+
+lieneno : int
+
+
+
+
+s : str
+
+
+
+
+source_flags : CompilerFlags
+
+
+
+
+startpos : FilePos
+
+
+
+
+text : FileText
+
+
+
+
+value : AnnotatedAst
+
+
+
+
+
+
+class pyflyby._parse. AnnotatedModule
+
+
+source_flags : CompilerFlags
+
+
+
+
+
+
+class pyflyby._parse. AstNodeContext ( parent , field , index )
+
+
+_asdict ( )
+Return a new dict which maps field names to their values.
+
+
+
+
+_field_defaults = {}
+
+
+
+
+_fields = ('parent', 'field', 'index')
+
+
+
+
+classmethod _make ( iterable )
+Make a new AstNodeContext object from a sequence or iterable
+
+
+
+
+_replace ( ** kwds )
+Return a new AstNodeContext object replacing specified fields with new values
+
+
+
+
+field
+Alias for field number 1
+
+
+
+
+index
+Alias for field number 2
+
+
+
+
+parent
+Alias for field number 0
+
+
+
+
+
+
+class pyflyby._parse. IgnoreOptionsDocTestParser
+
+
+_find_options ( source , name , lineno )
+Return a dictionary containing option overrides extracted from
+option directives in the given source string.
+name is the string’s name, and lineno is the line number
+where the example starts; both are used for error messages.
+
+
+
+
+
+
+class pyflyby._parse. _DummyAst_Node
+
+
+
+
+pyflyby._parse. _annotate_ast_context ( ast_node )
+Recursively annotate context
on ast nodes, setting context
to
+a AstNodeContext named tuple with values
+(parent, field, index)
.
+Each aast_node satisfies parent.<field>[<index>] is ast_node
.
+For non-list fields, the index part is None
.
+
+
+
+
+pyflyby._parse. _annotate_ast_nodes ( ast_node )
+
+Annotate AST with:
+
+
+
+Parameters:
+ast_node (AST
) – AST node returned by _parse_ast_nodes
+
+Return type:
+AnnotatedAst
+
+Returns:
+None
+
+
+
+
+
+
+pyflyby._parse. _annotate_ast_startpos ( ast_node , parent_ast_node , minpos , text , flags )
+Annotate ast_node
. Set ast_node.startpos
to the starting position
+of the node within text
.
+For “typical” nodes, i.e. those other than multiline strings, this is
+simply FilePos(ast_node.lineno, ast_node.col_offset+1), but taking
+text.startpos
into account.
+For multiline string nodes, this function works by trying to parse all
+possible subranges of lines until finding the range that is syntactically
+valid and matches value
. The candidate range is
+text[min_start_lineno:lineno+text.startpos.lineno+1].
+This function is unfortunately necessary because of a flaw in the output
+produced by the Python built-in parser. For some crazy reason, the
+ast_node.lineno
attribute represents something different for multiline
+string literals versus all other statements. For multiline string literal
+nodes and statements that are just a string expression (or more generally,
+nodes where the first descendant leaf node is a multiline string literal),
+the compiler attaches the ending line number as the value of the lineno
+attribute. For all other than AST nodes, the compiler attaches the
+starting line number as the value of the lineno
attribute. This means
+e.g. the statement “’’’foonbar’’’” has a lineno value of 2, but the
+statement “x=’’’foonbar’’’” has a lineno value of 1.
+
+Parameters:
+
+minpos (FilePos
) – Earliest position to check, in the number space of text
.
+text (FileText
) – Source text that was used to parse the AST, whose startpos
should be
+used in interpreting ast_node.lineno
(which always starts at 1 for
+the subset that was parsed).
+flags (CompilerFlags
) – Compiler flags to use when re-compiling code.
+
+
+Return type:
+bool
+
+Returns:
+True
if this node is a multiline string literal or the first child is
+such a node (recursively); False
otherwise.
+
+Raises:
+ValueError – Could not find the starting line number.
+
+
+
+
+
+
+pyflyby._parse. _ast_node_is_in_docstring_position ( ast_node )
+Given a Str
AST node, return whether its position within the AST makes
+it eligible as a docstring.
+The main way a Str
can be a docstring is if it is a standalone string
+at the beginning of a Module
, FunctionDef
, AsyncFucntionDef
+or ClassDef
.
+We also support variable docstrings per Epydoc:
+
+
+
+Parameters:
+ast_node (ast.Str
) – AST node that has been annotated by _annotate_ast_nodes
.
+
+Return type:
+bool
+
+Returns:
+Whether this string ast node is in docstring position.
+
+
+
+
+
+
+pyflyby._parse. _ast_str_literal_value ( node )
+
+
+
+
+pyflyby._parse. _flags_to_try ( source , flags , auto_flags , mode )
+Flags to try for auto_flags
.
+If auto_flags
is False, then only yield flags
.
+If auto_flags
is True, then yield flags
and flags ^ print_function
.
+
+
+
+
+pyflyby._parse. _flatten_ast_nodes ( arg )
+
+
+
+
+pyflyby._parse. _is_ast_bytes ( node )
+utility function that test if node is an ast.Str in Python < 3.12,
+and if it is a ast.Constant, with node.value being a str in newer version.
+
+Return type:
+bool
+
+
+
+
+
+
+pyflyby._parse. _is_ast_str ( node )
+utility function that test if node is an ast.Str in Python < 3.12,
+and if it is a ast.Constant, with node.value being a str in newer version.
+
+Return type:
+bool
+
+
+
+
+
+
+pyflyby._parse. _is_ast_str_or_byte ( node )
+utility function that test if node is an ast.Str|ast.Bytes in Python < 3.12,
+and if it is a ast.Constant, with node.value being a str in newer version.
+
+Return type:
+bool
+
+
+
+
+
+
+Returns whether a line of python code contains only a comment is blank.
+>>> _is_comment_or_blank ( "foo \n " )
+False
+
+
+>>> _is_comment_or_blank ( " # blah \n " )
+True
+
+
+
+
+
+
+pyflyby._parse. _iter_child_nodes_in_order ( node )
+Yield all direct child nodes of node
, that is, all fields that are nodes
+and all items of fields that are lists of nodes.
+_iter_child_nodes_in_order
yields nodes in the same order that they
+appear in the source.
+ast.iter_child_nodes
does the same thing, but not in source order.
+e.g. for Dict
s, it yields all key nodes before all value nodes.
+
+
+
+
+pyflyby._parse. _iter_child_nodes_in_order_internal_1 ( node )
+
+
+
+
+pyflyby._parse. _parse_ast_nodes ( text , flags , auto_flags , mode )
+Parse a block of lines into an AST.
+Also annotate input_flags
, source_flags
, and flags
on the
+resulting ast node.
+
+Parameters:
+
+auto_flags (bool
) – Whether to guess different flags if text
can’t be parsed with
+flags
.
+mode (str
) – Compilation mode: “exec”, “single”, or “eval”.
+
+
+Return type:
+ast.Module
+
+
+
+
+
+
+pyflyby._parse. _split_code_lines ( ast_nodes , text )
+Split the given ast_nodes
and corresponding text
by code/noncode
+statement.
+Yield tuples of (nodes, subtext). nodes
is a list of ast.AST
nodes,
+length 0 or 1; subtext
is a FileText sliced from text
.
+FileText(…))} for code lines and (None, FileText(...))
for non-code
+lines (comments and blanks).
+
+
+
+
+
+
+pyflyby._parse. _test_parse_string_literal ( text , flags )
+Attempt to parse text
. If it parses cleanly to a single string
+literal, return its value. Otherwise return None
.
+>>> _test_parse_string_literal ( r '"foo\n" r"\nbar"' , None )
+'foo\n\\nbar'
+
+
+
+
+
+
+pyflyby._parse. _walk_ast_nodes_in_order ( node )
+Recursively yield all child nodes of node
, in the same order that the
+node appears in the source.
+ast.walk
does the same thing, but yields nodes in an arbitrary order.
+
+
+
+
+pyflyby._parse. infer_compile_mode ( arg )
+Infer the mode needed to compile arg
.
+
+Return type:
+str
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/py.html b/api/py.html
new file mode 100644
index 00000000..2422d129
--- /dev/null
+++ b/api/py.html
@@ -0,0 +1,1498 @@
+
+
+
+
+
+
+
+
+
_py module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_py module
+The py program (part of the pyflyby project) is a command-line multitool for
+running python code, with heuristic intention guessing, automatic importing,
+and debugging support.
+
+Invocation summary
+ py [--file] filename.py arg1 arg2 Execute a file
+py [--eval] 'function(arg1, arg2)' Evaluate an expression/statement
+py [--apply] function arg1 arg2 Call function(arg1, arg2)
+py [--module] modname arg1 arg2 Run a module
+
+py --map function arg1 arg2 Call function(arg1); function(arg2)
+
+py -i 'function(arg1, arg2)' Run file/code/etc, then run IPython
+py --debug 'function(arg1, arg2)' Debug file/code/etc
+py --debug PID Attach debugger to PID
+
+py function? Get help for a function or module
+py function?? Get source of a function or module
+
+py Start IPython with autoimporter
+py nb Start IPython Notebook with autoimporter
+
+
+py [--add-deprecated-builtins] Inject "breakpoint", "debug_exception",
+ "debug_statement", "waitpoint" into
+ builtins. This is deprecated, and
+ present for backward compatibilty
+ but will be removed in the future.
+
+
+
+
+Features
+
+
+Heuristic action mode guessing: If none of –file, –eval, –apply,
+–module, or –map is specified, then guess what to do, choosing one of
+these actions:
+
+
+
+Automatic importing: All action modes (except run_module) automatically
+import as needed.
+Heuristic argument evaluation: By default, py –eval , py –apply , and
+py –map guess whether the arguments should be interpreted as
+expressions or literal strings. A “–” by itself will designate subsequent
+args as strings. A “-” by itself will be replaced by the contents of
+stdin as a string.
+Merged eval/exec: Code is eval()ed or exec()ed as appropriate.
+Result printing: By default, results are pretty-printed if not None.
+Heuristic flags: “print” can be used as a function or a statement.
+Matplotlib/pylab integration: show() is called if appropriate to block on
+plots.
+Enter debugger upon unhandled exception. (This functionality is enabled
+by default when stdout is a tty. Use –postmortem=no to never use the
+postmortem debugger. Use –postmortem=yes enable even if stdout is not a
+tty. If the postmortem debugger is enabled but /dev/tty is not available,
+then if an exception occurs, py will email instructions for attaching a
+debugger.)
+Control-\ (SIGQUIT) enters debugger while running (and allows continuing).
+New builtin functions such as “debugger()”.
+
+
+
+
Warning
+
py is intended as an interactive tool. When writing shell aliases for
+interactive use, the –safe option can be useful. When writing scripts,
+it’s better to avoid all heuristic guessing; use regular python -c … , or
+better yet, a full-fledged python program (and run tidy-imports).
+
+
+
+Options
+ Global options valid before code argument:
+
+ --args=string Interpret all arguments as literal strings.
+ (The "--" argument also specifies remaining arguments to be
+ literal strings.)
+ --args=eval Evaluate all arguments as expressions.
+ --args=auto (Default) Heuristically guess whether to evaluate arguments
+ as literal strings or expressions.
+ --output=silent Don't print the result of evaluation.
+ --output=str Print str(result).
+ --output=repr Print repr(result).
+ --output=pprint Print pprint.pformat(result).
+ --output=repr-if-not-none
+ Print repr(result), but only if result is not None.
+ --output=pprint-if-not-none
+ Print pprint.pformat(result), but only if result is not None.
+ --output=interactive
+ (Default) Print result.__interactive_display__() if defined,
+ else pprint if result is not None.
+ --output=exit Raise SystemExit(result).
+ --safe Equivalent to --args=strings and PYFLYBY_PATH=EMPTY.
+ --quiet, --q Log only error messages to stderr; omit info and warnings.
+ --interactive, --i
+ Run an IPython shell after completion
+ --debug, --d Run the target code file etc under the debugger. If a PID is
+ given, then instead attach a debugger to the target PID.
+ --verbose Turn on verbose messages from pyflyby.
+
+Pseudo-actions valid before, after, or without code argument:
+
+ --version Print pyflyby version or version of a module.
+ --help, --h, --? Print this help or help for a function or module.
+ --source, --?? Print source code for a function or module.
+
+
+Examples
+Start IPython with pyflyby autoimporter enabled:
+
+Start IPython/Jupyter Notebook with pyflyby autoimporter enabled:
+
+Find the ASCII value of the letter “j” (apply builtin function):
+ $ py ord j
+[PYFLYBY] ord('j')
+106
+
+
+Decode a base64-encoded string (apply autoimported function):
+ $ py b64decode aGVsbG8=
+[PYFLYBY] from base64 import b64decode
+[PYFLYBY] b64decode('aGVsbG8=', altchars=None)
+b'hello'
+
+
+Find the day of the week of some date (apply function in module):
+ $ py calendar.weekday 2014 7 18
+[PYFLYBY] import calendar
+[PYFLYBY] calendar.weekday(2014, 7, 18)
+4
+
+
+Using named arguments:
+ $ py calendar.weekday --day=16 --month=7 --year=2014
+[PYFLYBY] import calendar
+[PYFLYBY] calendar.weekday(2014, 7, 16)
+2
+
+
+Using short named arguments:
+ $ py calendar.weekday -m 7 -d 15 -y 2014
+[PYFLYBY] import calendar
+[PYFLYBY] calendar.weekday(2014, 7, 15)
+1
+
+
+Invert a matrix (evaluate expression, with autoimporting):
+ $ py 'matrix("1 3 3; 1 4 3; 1 3 4").I'
+[PYFLYBY] from numpy import matrix
+[PYFLYBY] matrix("1 3 3; 1 4 3; 1 3 4").I
+matrix([[ 7., -3., -3.],
+ [-1., 1., 0.],
+ [-1., 0., 1.]])
+
+
+Plot cosine (evaluate expression, with autoimporting):
+ $ py 'plot(cos(arange(30)))'
+[PYFLYBY] from numpy import arange
+[PYFLYBY] from numpy import cos
+[PYFLYBY] from matplotlib.pyplot import plot
+[PYFLYBY] plot(cos(arange(30)))
+<plot>
+
+
+Command-line calculator (multiple arguments):
+
+Command-line calculator (single arguments):
+ $ py '(5+7j) \** 12'
+(65602966976-150532462080j)
+
+
+Rationalize a decimal (apply bound method):
+ $ py 2.5.as_integer_ratio
+[PYFLYBY] 2.5.as_integer_ratio()
+(5, 2)
+
+
+Rationalize a decimal (apply unbound method):
+ $ py float.as_integer_ratio 2.5
+[PYFLYBY] float.as_integer_ratio(2.5)
+(5, 2)
+
+
+Rationalize decimals (map/apply):
+ $ py --map float.as_integer_ratio 2.5 3.5
+[PYFLYBY] float.as_integer_ratio(2.5)
+(5, 2)
+[PYFLYBY] float.as_integer_ratio(3.5)
+(7, 2)
+
+
+Square numbers (map lambda):
+ $ py --map 'lambda x: x \**2' 3 4 5
+[PYFLYBY] (lambda x: x \**2)(3)
+9
+[PYFLYBY] (lambda x: x \**2)(4)
+16
+[PYFLYBY] (lambda x: x \**2)(5)
+25
+
+
+Find length of string (using “-” for stdin):
+ $ echo hello | py len -
+[PYFLYBY] len('hello\\n')
+6
+
+
+Run stdin as code:
+ $ echo 'print(sys.argv[1:])' | py - hello world
+[PYFLYBY] import sys
+['hello', 'world']
+
+
+Run libc functions:
+ $ py --quiet --output=none 'CDLL("libc.so.6").printf' %03d 7
+007
+
+
+Download web page:
+ $ py --print 'requests.get(sys.argv[1]).text' http://example.com
+
+
+Get function help:
+ $ py b64decode?
+[PYFLYBY] from base64 import b64decode
+Python signature::
+
+ >> b64decode(s, altchars=None, validate=False)
+
+Command-line signature::
+
+ $ py b64decode s [altchars [validate]]
+ $ py b64decode --s=... [--altchars=...] [--validate=...]
+...
+
+
+Get module help:
+ $ py pandas?
+[PYFLYBY] import pandas
+Version:
+ 0.13.1
+Filename:
+ /usr/local/lib/python2.7/site-packages/pandas/__init__.pyc
+Docstring:
+ pandas - a powerful data analysis and manipulation library for Python
+ ...
+
+
+
+
+
+class pyflyby._py. LoggedList ( items )
+List that logs which members have not yet been accessed (nor removed).
+
+
+_ACCESSED = <object object>
+
+
+
+
+append ( x )
+
+
+
+
+count ( )
+
+
+
+
+extend ( new_items )
+
+
+
+
+index ( x , * start_stop )
+
+
+
+
+insert ( index , x )
+
+
+
+
+pop ( index )
+
+
+
+
+remove ( x )
+
+
+
+
+reverse ( )
+
+
+
+
+sort ( )
+
+
+
+
+property unaccessed
+
+
+
+
+
+
+exception pyflyby._py. NotAFunctionError
+
+
+
+
+exception pyflyby._py. ParseError
+
+
+
+
+pyflyby._py. SysArgvCtx ( * args )
+
+Context manager that:
+
+
+
+
+
+
+exception pyflyby._py. UnimportableNameError
+
+
+
+
+class pyflyby._py. UserExpr ( arg , namespace , arg_mode , source = None )
+An expression from user input, and its evaluated value.
+The expression can come from a string literal or other raw value, or a
+string that is evaluated as an expression, or heuristically chosen.
+
+Heuristic auto-evaluation:
+>>> UserExpr ( '5+2' , ns , "auto" ) . value
+7
+
+>>> UserExpr ( '5j+2' , ns , "auto" ) . value
+(2+5j)
+
+>>> UserExpr ( 'base64.b64decode("SGFsbG93ZWVu")' , ns , "auto" ) . value
+[PYFLYBY] import base64
+b'Halloween'
+
+
+Returning an unparsable argument as a string:
+>>> UserExpr ( 'Victory Loop' , ns , "auto" ) . value
+'Victory Loop'
+
+
+Returning an undefined (and not auto-importable) argument as a string:
+>>> UserExpr ( 'Willowbrook29817621+5' , ns , "auto" ) . value
+'Willowbrook29817621+5'
+
+
+Explicit literal string:
+>>> UserExpr ( "2+3" , ns , "raw_value" ) . value
+'2+3'
+
+>>> UserExpr ( "'2+3'" , ns , "raw_value" ) . value
+"'2+3'"
+
+
+Other raw values:
+>>> UserExpr ( sys . exit , ns , "raw_value" ) . value
+<built-in function exit>
+
+
+
+
+_infer_and_evaluate ( )
+
+Return type:
+None
+
+
+
+
+
+
+
+
+class pyflyby._py. _Namespace
+
+
+auto_eval ( block , mode = None , info = False , auto_import = True , debug = False )
+Evaluate block
with auto-importing.
+
+
+
+
+auto_import ( arg )
+
+
+
+
+
+
+exception pyflyby._py. _ParseInterruptedWantHelp
+
+
+
+
+exception pyflyby._py. _ParseInterruptedWantSource
+
+
+
+
+class pyflyby._py. _PyMain ( args )
+
+
+_enable_debug_tools ( * , add_deprecated )
+
+
+
+
+_parse_global_opts ( )
+
+
+
+
+_pre_exit ( )
+
+
+
+
+_pre_exit_interactive_shell ( )
+
+
+
+
+_pre_exit_matplotlib_show ( )
+If matplotlib.pyplot (pylab) is loaded, then call the show() function.
+This will cause the program to block until all figures are closed.
+Without this, a command like ‘py plot(…)’ would exit immediately.
+
+
+
+
+_run_action ( )
+
+
+
+
+_seems_like_runnable_module ( arg )
+
+
+
+
+apply ( function , cmd_args )
+
+
+
+
+create_ipython_app ( )
+Create an IPython application and initialize it, but don’t start it.
+
+
+
+
+eval ( cmd , cmd_args )
+
+
+
+
+exec_stdin ( cmd_args )
+
+
+
+
+execfile ( filename_arg , cmd_args )
+
+
+
+
+heuristic_cmd ( cmd , cmd_args , function_name = None )
+
+
+
+
+heuristic_run_module ( module , args )
+
+
+
+
+print_help ( objname , verbosity = 1 )
+
+
+
+
+print_version ( arg )
+
+
+
+
+run ( )
+
+
+
+
+run_module ( module , args )
+
+
+
+
+start_ipython ( args = [] )
+
+
+
+
+
+
+pyflyby._py. _as_filename_if_seems_like_filename ( arg )
+If arg
seems like a filename, then return it as one.
+>>> bool ( _as_filename_if_seems_like_filename ( "foo.py" ))
+True
+
+
+>>> bool ( _as_filename_if_seems_like_filename ( " %f oo.py" ))
+False
+
+
+>>> bool ( _as_filename_if_seems_like_filename ( "foo(bar)" ))
+False
+
+
+>>> bool ( _as_filename_if_seems_like_filename ( "/foo/bar/baz.quux-660470" ))
+True
+
+
+>>> bool ( _as_filename_if_seems_like_filename ( "../foo/bar-24084866" ))
+True
+
+
+
+Return type:
+Filename
+
+
+
+
+
+
+pyflyby._py. _build_function_usage_string ( function_name , obj , prefix )
+
+
+
+
+pyflyby._py. _format_call ( function_name , argspec , args , kwargs )
+
+
+
+
+pyflyby._py. _format_call_spec ( function_name , obj )
+
+Return type:
+str
+
+
+
+
+
+
+pyflyby._py. _get_argspec ( arg )
+
+Return type:
+FullArgSpec
+
+
+
+
+
+
+pyflyby._py. _get_help ( expr , verbosity = 1 )
+Construct a help string.
+
+Parameters:
+expr (UserExpr
) – Object to generate help for.
+
+Return type:
+str
+
+
+
+
+
+
+pyflyby._py. _handle_user_exception ( exc_info = None )
+Handle an exception in user code.
+
+
+
+
+pyflyby._py. _has_python_shebang ( filename )
+Return whether the first line contains #!…python…
+Used for confirming that an executable script found via which() is
+actually supposed to be a python script.
+Note that this test is only needed for scripts found via which(), since
+otherwise the shebang is not necessary.
+
+
+
+
+pyflyby._py. _interpret_arg_mode ( arg , default = 'auto' )
+>>> _interpret_arg_mode ( "Str" )
+'string'
+
+
+
+
+
+
+pyflyby._py. _interpret_output_mode ( arg , default = 'interactive' )
+>>> _interpret_output_mode ( 'Repr_If_Not_None' )
+'repr-if-not-none'
+
+
+
+
+
+
+pyflyby._py. _parse_auto_apply_args ( argspec , commandline_args , namespace , arg_mode = 'auto' )
+Parse command-line arguments heuristically. Arguments that can be
+evaluated are evaluated; otherwise they are treated as strings.
+
+Returns:
+args
, kwargs
+
+
+
+
+
+
+pyflyby._py. _requires_parens_as_function ( function_name )
+Returns whether the given string of a callable would require parentheses
+around it to call it.
+>>> _requires_parens_as_function ( "foo.bar[4]" )
+False
+
+
+>>> _requires_parens_as_function ( "foo+bar" )
+True
+
+
+>>> _requires_parens_as_function ( "(foo+bar)()" )
+False
+
+
+>>> _requires_parens_as_function ( "(foo+bar)" )
+False
+
+
+>>> _requires_parens_as_function ( "(foo)+(bar)" )
+True
+
+
+
+Return type:
+bool
+
+
+
+
+
+
+pyflyby._py. auto_apply ( function , commandline_args , namespace , arg_mode = None , debug = False )
+Call function
on command-line arguments. Arguments can be positional
+or keyword arguments like “–foo=bar”. Arguments are by default
+heuristically evaluated.
+
+Parameters:
+
+function (UserExpr
) – Function to apply.
+commandline_args (list
of str
) – Arguments to function
as strings.
+arg_mode – How to interpret commandline_args
. If "string"
, then treat them
+as literal strings. If "eval"
, then evaluate all arguments as
+expressions. If "auto"
(the default), then heuristically decide
+whether to treat as expressions or strings.
+
+
+
+
+
+
+
+pyflyby._py. print_result ( result , output_mode )
+
+
+
+
+pyflyby._py. py_main ( args = None )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/util.html b/api/util.html
new file mode 100644
index 00000000..6a0207a2
--- /dev/null
+++ b/api/util.html
@@ -0,0 +1,961 @@
+
+
+
+
+
+
+
+
+
_util module — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+_util module
+
+
+pyflyby._util. AdviceCtx ( joinpoint , hook )
+
+
+
+
+class pyflyby._util. Aspect ( joinpoint )
+Monkey-patch a target method (joinpoint) with “around” advice.
+The advice can call “__original__(…)”. At run time, a global named
+“__original__” will magically be available to the wrapped function.
+This refers to the original function.
+Suppose someone else wrote Foo.bar():
+>>> class Foo ( object ):
+... def __init__ ( self , x ):
+... self . x = x
+... def bar ( self , y ):
+... return "bar(self.x= %s ,y= %s )" % ( self . x , y )
+
+>>> foo = Foo ( 42 )
+
+
+To monkey patch foo.bar
, decorate the wrapper with "@advise(foo.bar)"
:
+>>> @advise ( foo . bar )
+... def addthousand ( y ):
+... return "advised foo.bar(y= %s ): %s " % ( y , __original__ ( y + 1000 ))
+
+>>> foo . bar ( 100 )
+'advised foo.bar(y=100): bar(self.x=42,y=1100)'
+
+
+You can uninstall the advice and get the original behavior back:
+>>> addthousand . unadvise ()
+
+>>> foo . bar ( 100 )
+'bar(self.x=42,y=100)'
+
+
+
+See:
+http://en.wikipedia.org/wiki/Aspect-oriented_programming
+
+
+
+
+_wrapper = None
+
+
+
+
+advise ( hook , once = False )
+
+
+
+
+unadvise ( )
+
+
+
+
+
+
+pyflyby._util. CwdCtx ( path )
+Context manager that temporarily enters a new working directory.
+
+
+
+
+pyflyby._util. EnvVarCtx ( ** kwargs )
+Context manager that temporarily modifies os.environ.
+
+
+
+
+pyflyby._util. ExcludeImplicitCwdFromPathCtx ( )
+Context manager that temporarily removes “.” from sys.path
.
+
+
+
+
+class pyflyby._util. FunctionWithGlobals ( function , ** variables )
+A callable that at runtime adds extra variables to the target function’s
+global namespace.
+This is written as a class with a __call__ method. We do so rather than
+using a metafunction, so that we can also implement __getattr__ to look
+through to the target.
+
+
+
+
+pyflyby._util. ImportPathCtx ( path_additions )
+Context manager that temporarily prepends sys.path
with path_additions
.
+
+
+
+
+pyflyby._util. NullCtx ( )
+Context manager that does nothing.
+
+
+
+
+exception pyflyby._util. WrappedAttributeError
+
+
+
+
+class pyflyby._util. _WritableDictProxy ( cls )
+Writable equivalent of cls.__dict__.
+
+
+get ( k , default = None )
+
+
+
+
+
+
+pyflyby._util. advise ( joinpoint )
+Advise joinpoint
.
+See Aspect .
+
+
+
+
+pyflyby._util. cmp ( a , b )
+
+
+
+
+pyflyby._util. indent ( lines , prefix )
+>>> indent ( 'hello \n world \n ' , '@@' )
+'@@hello\n@@world\n'
+
+
+
+
+
+
+pyflyby._util. longest_common_prefix ( items1 , items2 )
+Return the longest common prefix.
+>>> longest_common_prefix ( "abcde" , "abcxy" )
+'abc'
+
+
+
+Return type:
+type(items1)
+
+
+
+
+
+
+pyflyby._util. nested ( * mgrs )
+
+
+
+
+pyflyby._util. partition ( iterable , predicate )
+>>> partition ( '12321233221' , lambda c : int ( c ) % 2 == 0 )
+(['2', '2', '2', '2', '2'], ['1', '3', '1', '3', '3', '1'])
+
+
+
+
+
+
+pyflyby._util. prefixes ( parts )
+>>> list ( prefixes ( "abcd" ))
+['a', 'ab', 'abc', 'abcd']
+
+
+
+
+
+
+pyflyby._util. stable_unique ( items )
+Return a copy of items
without duplicates. The order of other items is
+unchanged.
+>>> stable_unique ([ 1 , 4 , 6 , 4 , 6 , 5 , 7 ])
+[1, 4, 6, 5, 7]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/genindex.html b/genindex.html
new file mode 100644
index 00000000..e957677a
--- /dev/null
+++ b/genindex.html
@@ -0,0 +1,2279 @@
+
+
+
+
+
+
+
+
Index — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+
Index
+
+
+
_
+ |
A
+ |
B
+ |
C
+ |
D
+ |
E
+ |
F
+ |
G
+ |
H
+ |
I
+ |
J
+ |
K
+ |
L
+ |
M
+ |
N
+ |
O
+ |
P
+ |
R
+ |
S
+ |
T
+ |
U
+ |
V
+ |
W
+
+
+
_
+
+
+
A
+
+
+
B
+
+
+
C
+
+
+
D
+
+
+
E
+
+
+
F
+
+
+
G
+
+
+
H
+
+
+
I
+
+
+
J
+
+
+
K
+
+
+
L
+
+
+
M
+
+
+
N
+
+
+
O
+
+
+
P
+
+
+
+
+ pyflyby._comms
+
+
+
+ pyflyby._dbg
+
+
+
+ pyflyby._file
+
+
+
+ pyflyby._flags
+
+
+
+ pyflyby._format
+
+
+
+ pyflyby._idents
+
+
+
+ pyflyby._importclns
+
+
+
+ pyflyby._importdb
+
+
+
+ pyflyby._imports2s
+
+
+
+ pyflyby._importstmt
+
+
+
+ pyflyby._interactive
+
+
+
+ pyflyby._livepatch
+
+
+
+ pyflyby._log
+
+
+
+ pyflyby._modules
+
+
+
+ pyflyby._parse
+
+
+
+ pyflyby._py
+
+
+
+ pyflyby._util
+
+
+ PyflybyLogger (class in pyflyby._log)
+
+
+
+
+
R
+
+
+
S
+
+
+
T
+
+
+
U
+
+
+
V
+
+
+
W
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..d15022e6
--- /dev/null
+++ b/index.html
@@ -0,0 +1,1944 @@
+
+
+
+
+
+
+
+
+
Pyflyby — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+Pyflyby
+
+
+
+
+Pyflyby is a set of Python programming productivity tools for Python 3.8+.
+
+For command-line interaction:
+
+For IPython interaction:
+
+For editing python source code:
+tidy-imports
: adds missing ‘import’s, removes unused ‘import’s,
+and also reformats import blocks.
+find-import
: prints to stdout how to import a particular symbol.
+reformat-imports
: reformats import
blocks
+collect-imports
: prints out all the imports in a given set of files.
+collect-exports
: prints out definitions in a given set of modules,
+in the form of import statements.
+transform-imports
: renames imported modules/functions.
+
+
+
+
+Installation
+
+
+This creates an alias for your ipython named py which runs the pyflyby plug internally. pyflyby has a dependency on ipython , if it isn’t already installed do install it with:
+
+
+
+
+
+Quick start: Autoimporter + IPython
+ $ py
+In [ 1 ] : re.search( "[a-z]+" , "....hello..." ) .group( 0 )
+[ PYFLYBY] import re
+Out[ 1 ] : 'hello'
+
+In [ 2 ] : chisqprob( arange( 5 ) , 2 )
+[ PYFLYBY] from numpy import arange
+[ PYFLYBY] from scipy.stats import chisqprob
+Out[ 2 ] : [ 1 . 0 .6065 0 .3679 0 .2231 0 .1353]
+
+
+To load pyflyby into an existing IPython session as a 1-off:
+ $ ipython
+In [ 1 ] : %load_ext pyflyby
+
+
+To configure IPython/Jupyter Notebook to load pyflyby automatically:
+ $ py pyflyby.install_in_ipython_config_file
+
+
+or
+ $ echo 'c.InteractiveShellApp.extensions.append("pyflyby")' \
+ >> ~/.ipython/profile_default/ipython_config.py
+
+$ ipython
+In [ 1 ] : b64decode( 'aGVsbG8=' )
+[ PYFLYBY] from base64 import b64decode
+Out[ 1 ] : 'hello'
+
+
+
+Auto importer lazy variables
+It is possible to use the autoimporter to lazily define variables.
+To use, put the following in your IPython startup files
+(~/.ipython/profile_default/startup/autoimp.py
), or in your IPython
+configuration file:
+from pyflyby import add_import
+
+add_import ( "foo" , "foo = 1" )
+
+add_import (
+ "df, data as dd" ,
+ '''
+ import pandas as pd
+ data = [1,2,3]
+ df = pd.DataFrame(data)
+''' )
+
+
+You can add the keyword strict=False
to not fail if not in IPython or of the
+pyflyby extensions is not loaded.
+
+
+
+
+Quick start: tidy-imports
+To use tidy-imports
, just specify the filename(s) to tidy.
+For example:
+ $ echo 're.search("[a-z]+", "....hello..."), chisqprob(arange(5), 2)' > foo.py
+
+$ tidy-imports foo.py
+--- /tmp/foo.py
++++ /tmp/foo.py
+@@ -1 +1,9 @@
++from __future__ import absolute_import, division, with_statement
++
++from numpy import arange
++from scipy.stats import chisqprob
++import re
++
+ re.search("[a-z]+", "....hello..."), chisqprob(arange(5), 2)
+
+Replace /tmp/foo.py? [y/N]
+
+
+
+
+Quick start: import libraries
+Create a file named .pyflyby with lines such as
+from mypackage.mymodule import MyClass , my_function
+import anotherpackage.anothermodule
+
+
+You can put this file in your home directory or in the same directory as your
+*.py
files.
+
+
+Details: automatic imports
+AUTOMATIC IMPORTS - never type “import” again!
+This module allows your “known imports” to work automatically in your IPython
+interactive session without having to type the ‘import’ statements (and also
+without having to slow down your Python startup with imports you only use
+occasionally).
+Example:
+In [ 1 ]: re . search ( "[a-z]+" , "....hello..." ) . group ( 0 )
+[ PYFLYBY ] import re
+Out [ 1 ]: 'hello'
+
+In [ 2 ]: chisqprob ( arange ( 5 ), 2 )
+[ PYFLYBY ] from numpy import arange
+[ PYFLYBY ] from scipy.stats import chisqprob
+Out [ 2 ]: [ 1. 0.6065 0.3679 0.2231 0.1353 ]
+
+In [ 3 ]: np . sin ( arandom ( 5 ))
+[ PYFLYBY ] from numpy.random import random as arandom
+[ PYFLYBY ] import numpy as np
+Out [ 3 ]: [ 0.0282 0.0603 0.4653 0.8371 0.3347 ]
+
+In [ 4 ]: isinstance ( 42 , Number )
+[ PYFLYBY ] from numbers import Number
+Out [ 4 ]: True
+
+
+
+It just works
+Tab completion works, even on modules that are not yet imported. In the
+following example, notice that numpy is imported when we need to know its
+members, and only then:
+ $ ipython
+In [1]: nump<TAB>
+In [1]: numpy
+In [1]: numpy.arang<TAB>
+[PYFLYBY] import numpy
+In [1]: numpy.arange
+
+
+The IPython “?” magic help (pinfo/pinfo2) automatically imports symbols first
+if necessary:
+ $ ipython
+In [1]: arange?
+[PYFLYBY] from numpy import arange
+... Docstring: arange([start,] stop[, step,], dtype=None) ...
+
+
+Other IPython magic commands work as well:
+ $ ipython
+In [1]: %timeit np.cos(pi)
+[PYFLYBY] import numpy as np
+[PYFLYBY] from numpy import pi
+100000 loops, best of 3: 2.51 us per loop
+
+$ echo 'print arange(4)' > foo.py
+$ ipython
+In [1]: %run foo.py
+[PYFLYBY] from numpy import arange
+[0 1 2 3]
+
+
+
+
+Implementation details
+The automatic importing happens at parse time, before code is executed. The
+namespace never contains entries for names that are not yet imported.
+This method of importing at parse time contrasts with previous implementations
+of automatic importing that use proxy objects. Those implementations using
+proxy objects don’t work as well, because it is impossible to make proxy
+objects behave perfectly. For example, instance(x, T) will return the wrong
+answer if either x or T is a proxy object.
+
+
+Compatibility
+
+Tested with:
+Python 3.8, 3.9, 3.10
+IPython 0.10, 0.11, 0.12, 0.13, 1.0, 1.2, 2.0, 2.1, 2.2, 2.3, 2.4, 3.0,
+3.1, 3.2, 4.0., 7.11 (latest)
+IPython (text console), IPython Notebook, Spyder
+
+
+
+
+
+
+Details: import libraries
+Pyflyby uses “import libraries” that tell how to import a given symbol.
+An import library file is simply a python source file containing ‘import’ (or
+‘from … import …’) lines. These can be generated automatically with
+collect-imports
and collect-exports
.
+
+Known imports
+Find-imports, tidy-imports
, and autoimport consult the database of known
+imports to figure out where to get an import. For example, if the
+imports database contains:
+from numpy import arange , NaN
+
+
+then when you type the following in IPython:
+
+the autoimporter would automatically execute from numpy import arange
.
+The database can be one file or multiple files. This makes it easy to have
+project-specific known_imports along with global and per-user defaults.
+The PYFLYBY_PATH
environment variable specifies which files to read.
+This is a colon-separated list of filenames or directory names. The default
+is:
+PYFLYBY_PATH =/ etc / pyflyby : ~/. pyflyby : .../. pyflyby
+
+
+If you set:
+PYFLYBY_PATH =/ foo1 / bar1 : / foo2 / bar2
+
+
+then this replaces the default.
+You can use a hyphen to include the default in the path. If you set:
+PYFLYBY_PATH =/ foo1 / bar1 : - : / foo2 / bar2
+
+
+then this reads /foo1/bar1
, then the default locations, then /foo2/bar2
.
+In $PYFLYBY_PATH
, .../.pyflyby
(with _three_ dots) means that all ancestor
+directories are searched for a member named “.pyflyby”.
+For example, suppose the following files exist:
+/ etc / pyflyby / stuff . py
+/ u / quarl /. pyflyby / blah1 . py
+/ u / quarl /. pyflyby / more / blah2 . py
+/ proj / share / mypythonstuff /. pyflyby
+/ proj / share / mypythonstuff / foo / bar /. pyflyby / baz . py
+/. pyflyby
+
+
+Further, suppose:
+
+
+Then tidy-imports /proj/share/mypythonstuff/foo/bar/quux/zot.py
will by
+default use the following:
+/ etc / pyflyby / stuff . py
+/ u / quarl /. pyflyby / blah1 . py
+/ u / quarl /. pyflyby / more / blah2 . py
+/ proj / share / mypythonstuff / foo / bar /. pyflyby / baz . py
+/ proj / share / mypythonstuff /. pyflyby ( a file )
+
+
+
+
Note
+
+/.pyflyby
is not included, because traversal stops at file system
+boundaries, and in this example, /proj
is on a different file system than
+/
.
+.pyflyby
(in $HOME
or near the target file) can be a file or a directory.
+If it is a directory, then it is recursively searched for *.py
files.
+The order usually doesn’t matter, but if there are “forget” instructions
+(see below), then the order matters. In the default $PYFLYBY_PATH
,
+…/.pyflyby is placed last so that per-directory configuration can
+override per-user configuration, which can override systemwide
+configuration.
+
+
+
+
+Forgetting imports
+Occasionally you may have reason to tell pyflyby to “forget” entries from the
+database of known imports.
+You can put the following in any file reachable from $PYFLYBY_PATH
:
+__forget_imports__ = [ "from numpy import NaN" ]
+
+
+This is useful if you want to use a set of imports maintained by someone else
+except for a few particular imports.
+Entries in $PYFLYBY_PATH
are processed left-to-right in the order specified,
+so put the files containing these at the end of your $PYFLYBY_PATH
. By
+default, tidy-imports
and friends process /etc/pyflyby
, then ~/.pyflyby
,
+then the per-directory .pyflyby
.
+
+
+Mandatory imports
+Within a certain project you may have a policy to always include certain
+imports. For example, maybe you always want to do from __future__ import
+division
in all files.
+You can put the following in any file reachable from $PYFLYBY_PATH
:
+__mandatory_imports__ = [ "from __future__ import division" ]
+
+
+To undo mandatory imports inherited from other .pyflyby
files, use
+__forget_imports__
(see above).
+
+
+Canonicalize imports
+Sometimes you want every run of tidy-imports
to automatically rename an import
+to a new name.
+You can put the following in any file reachable from $PYFLYBY_PATH
:
+__canonical_imports__ = { "oldmodule.oldfunction" : "newmodule.newfunction" }
+
+
+This is equivalent to running:
+tidy - imports -- transform = oldmodule . oldfunction = newmodule . newfunction
+
+
+
+
+
+Soapbox: avoid “star” imports
+When programming in Python, a good software engineering practice is to avoid
+using from foopackage import *
in production code.
+This style is a maintenance nightmare:
+
+
+It becomes difficult to figure out where various symbols
+(functions/classes/etc) come from.
+It’s hard to tell what gets shadowed by what.
+When the package changes in trivial ways, your code will be affected.
+Consider the following example: Suppose foopackage.py
contains import
+sys
, and myprogram.py
contains from foopackage import *; if
+some_condition: sys.exit(0)
. If foopackage.py
changes so that import
+sys
is removed, myprogram.py
is now broken because it’s missing import
+sys
.
+
+
+To fix such code, you can run tidy-imports --replace-star-imports
to
+automatically replace star imports with the specific needed imports.
+
+
+Per-Project configuration of tidy-imports
+You can configure Pyflyby on a per-repository basis by using the
+[tool.pyflyby] section of pyproject.toml files. Pyflyby will look in current
+working directory and all it’s parent until it find a pyproject.toml file from
+which it will load the defaults.
+Most of the long command line flags default values can be configured in this
+section. Simply use the long form option name by replacing dashes - by
+underscore _ . For long option that have the form –xxx and –no-xxx , you
+can assign a boolean to xxx . For example:
+[ tool . pyflyby ]
+add_missing = true
+from_spaces = 7
+remove_unused = false
+
+
+
+
+
+saveframe: A utility for debugging / reproducing an issue
+PyFlyBy provides a utility named saveframe which can be used to save
+information for debugging / reproducing an issue.
+Usage : If you have a piece of code or a script that is failing due an issue
+originating from upstream code, and you cannot share your private code as a reproducer,
+use this utility to save relevant information to a file. Share the generated file with
+the upstream team, enabling them to reproduce and diagnose the issue independently.
+Information saved in the file : This utility captures and saves error stack frames
+to a file. It includes the values of local variables from each stack frame, as well
+as metadata about each frame and the exception raised by your code.
+This utility comes with 2 interfaces:
+
+A function : For interactive usages such as IPython, Jupyter Notebook, or a
+debugger (pdb/ipdb), use pyflyby.saveframe function. To know how to use this
+function, checkout it’s documentation:
+
+
+
+A script : For cli usages (like a failing script), use pyflyby/bin/saveframe
+script. To know how to use this script, checkout its documentation:
+
+
+
+
+
+License
+Pyflyby is released under a very permissive license, the MIT/X11 license; see
+LICENSE.txt.
+
+
+Release
+
+Check version number in lib/python/pyflyby/_version.py , maybe increase it.
+Commit and tag if necessary, and push tags/commits.
+Optional: Set SOURCE_DATE_EPOCH for reproducible build:
+ export SOURCE_DATE_EPOCH=$(git show -s --format=%ct HEAD)
+
+
+
+Build the SDIST:
+
+
+Optional Repack the Sdist to make sure the ZIP only contain SOURCE_DATE_EPOCH
+date using IPython tools:
+python ~/ dev / ipython / tools / retar . py dist / pyflyby - 1.7.8 . tar . gz
+shasum - a 256 dist /*
+
+
+
+Optional, redo 4 & 5 to verify checksum is unchanged.
+Upload using twine:
+
+
+Check/update https://github.com/conda-forge/pyflyby-feedstock for new pyflyby
+release on conda-forge
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/objects.inv b/objects.inv
new file mode 100644
index 00000000..2cf8de71
Binary files /dev/null and b/objects.inv differ
diff --git a/py-modindex.html b/py-modindex.html
new file mode 100644
index 00000000..f7a910fb
--- /dev/null
+++ b/py-modindex.html
@@ -0,0 +1,882 @@
+
+
+
+
+
+
+
+
Python Module Index — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+ Python Module Index
+
+
+
+
+
+
+
+
+
+
Python Module Index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/search.html b/search.html
new file mode 100644
index 00000000..f496d184
--- /dev/null
+++ b/search.html
@@ -0,0 +1,787 @@
+
+
+
+
+
+
+
+
Search — pyflyby 1.9.8 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pyflyby
+
+
+
+
+
+
+
+
+
+
+
+ Please activate JavaScript to enable the search functionality.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/searchindex.js b/searchindex.js
new file mode 100644
index 00000000..9a44fd8c
--- /dev/null
+++ b/searchindex.js
@@ -0,0 +1 @@
+Search.setIndex({"alltitles": {"Authorship": [[20, "authorship"]], "Auto importer lazy variables": [[20, "auto-importer-lazy-variables"]], "Canonicalize imports": [[20, "canonicalize-imports"]], "Compatibility": [[20, "compatibility"]], "Contents:": [[0, null]], "Customizing behavior": [[14, "customizing-behavior"]], "Details: automatic imports": [[20, "details-automatic-imports"]], "Details: import libraries": [[20, "details-import-libraries"]], "Emacs support": [[20, "emacs-support"]], "Features": [[18, "features"]], "Forgetting imports": [[20, "forgetting-imports"]], "Implementation details": [[20, "implementation-details"]], "Indices and tables": [[20, "indices-and-tables"]], "Installation": [[20, "installation"]], "Invocation summary": [[18, "invocation-summary"]], "It just works": [[20, "it-just-works"]], "Known imports": [[20, "known-imports"]], "License": [[20, "license"]], "Mandatory imports": [[20, "mandatory-imports"]], "Options": [[18, "options"]], "Per-Project configuration of tidy-imports": [[20, "per-project-configuration-of-tidy-imports"]], "Pyflyby": [[20, null]], "Quick start: Autoimporter + IPython": [[20, "quick-start-autoimporter-ipython"]], "Quick start: import libraries": [[20, "quick-start-import-libraries"]], "Quick start: py command-line multi-tool": [[20, "quick-start-py-command-line-multi-tool"]], "Quick start: tidy-imports": [[20, "quick-start-tidy-imports"]], "Release": [[20, "release"]], "Soapbox: avoid \u201cstar\u201d imports": [[20, "soapbox-avoid-star-imports"]], "Table of Contents": [[20, "table-of-contents"]], "_autoimp module": [[1, null]], "_cmdline module": [[2, null]], "_comms module": [[3, null]], "_dbg module": [[4, null]], "_file module": [[5, null]], "_flags module": [[6, null]], "_format module": [[7, null]], "_idents module": [[8, null]], "_importclns module": [[9, null]], "_importdb module": [[10, null]], "_imports2s module": [[11, null]], "_importstmt module": [[12, null]], "_interactive module": [[13, null]], "_livepatch module": [[14, null]], "_log module": [[15, null]], "_modules module": [[16, null]], "_parse module": [[17, null]], "_py module": [[18, null]], "_util module": [[19, null]], "pyflyby API": [[0, null]], "saveframe: A utility for debugging / reproducing an issue": [[20, "saveframe-a-utility-for-debugging-reproducing-an-issue"]]}, "docnames": ["api/api", "api/autoimp", "api/cmdline", "api/comms", "api/dbg", "api/file", "api/flags", "api/format", "api/idents", "api/importclns", "api/importdb", "api/imports2s", "api/importstmt", "api/interactive", "api/livepatch", "api/log", "api/modules", "api/parse", "api/py", "api/util", "index"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["api/api.rst", "api/autoimp.rst", "api/cmdline.rst", "api/comms.rst", "api/dbg.rst", "api/file.rst", "api/flags.rst", "api/format.rst", "api/idents.rst", "api/importclns.rst", "api/importdb.rst", "api/imports2s.rst", "api/importstmt.rst", "api/interactive.rst", "api/livepatch.rst", "api/log.rst", "api/modules.rst", "api/parse.rst", "api/py.rst", "api/util.rst", "index.rst"], "indexentries": {"_abbrev_filename() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._abbrev_filename", false]], "_abc_impl (pyflyby._autoimp.scopestack attribute)": [[1, "pyflyby._autoimp.ScopeStack._abc_impl", false]], "_accessed (pyflyby._py.loggedlist attribute)": [[18, "pyflyby._py.LoggedList._ACCESSED", false]], "_advise() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._advise", false]], "_ancestors_on_same_partition() (in module pyflyby._importdb)": [[10, "pyflyby._importdb._ancestors_on_same_partition", false]], "_annotate_ast_context() (in module pyflyby._parse)": [[17, "pyflyby._parse._annotate_ast_context", false]], "_annotate_ast_nodes() (in module pyflyby._parse)": [[17, "pyflyby._parse._annotate_ast_nodes", false]], "_annotate_ast_startpos() (in module pyflyby._parse)": [[17, "pyflyby._parse._annotate_ast_startpos", false]], "_app_is_initialized() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._app_is_initialized", false]], "_as_filename_if_seems_like_filename() (in module pyflyby._py)": [[18, "pyflyby._py._as_filename_if_seems_like_filename", false]], "_asdict() (pyflyby._importstmt.importsplit method)": [[12, "pyflyby._importstmt.ImportSplit._asdict", false]], "_asdict() (pyflyby._parse.astnodecontext method)": [[17, "pyflyby._parse.AstNodeContext._asdict", false]], "_ast_node_is_in_docstring_position() (in module pyflyby._parse)": [[17, "pyflyby._parse._ast_node_is_in_docstring_position", false]], "_ast_str_literal_value() (in module pyflyby._parse)": [[17, "pyflyby._parse._ast_str_literal_value", false]], "_ast_transformer (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter._ast_transformer", false]], "_auto_import_in_pdb_frame() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._auto_import_in_pdb_frame", false]], "_autoimported_this_cell (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter._autoimported_this_cell", false]], "_build_function_usage_string() (in module pyflyby._py)": [[18, "pyflyby._py._build_function_usage_string", false]], "_by_module_name (pyflyby._importclns.importset property)": [[9, "pyflyby._importclns.ImportSet._by_module_name", false]], "_cached_has_star_import (pyflyby._autoimp.scopestack attribute)": [[1, "pyflyby._autoimp.ScopeStack._cached_has_star_import", false]], "_check_load() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._check_load", false]], "_classscope (class in pyflyby._autoimp)": [[1, "pyflyby._autoimp._ClassScope", false]], "_cls_cache (pyflyby._modules.modulehandle attribute)": [[16, "pyflyby._modules.ModuleHandle._cls_cache", false]], "_colno_to_index() (pyflyby._file.filetext method)": [[5, "pyflyby._file.FileText._colno_to_index", false]], "_construct() (pyflyby._interactive.autoimporter class method)": [[13, "pyflyby._interactive.AutoImporter._construct", false]], "_continue_enable() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._continue_enable", false]], "_data (pyflyby._file.filepos property)": [[5, "pyflyby._file.FilePos._data", false]], "_data (pyflyby._importclns.importmap attribute)": [[9, "pyflyby._importclns.ImportMap._data", false]], "_debug_code() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._debug_code", false]], "_debug_exception() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._debug_exception", false]], "_debuggerctx() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._DebuggerCtx", false]], "_default_on_error() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline._default_on_error", false]], "_deferred_load_checks (pyflyby._autoimp._missingimportfinder attribute)": [[1, "pyflyby._autoimp._MissingImportFinder._deferred_load_checks", false]], "_dev_null() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._dev_null", false]], "_dev_tty_fd() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._dev_tty_fd", false]], "_disablers (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter._disablers", false]], "_displayhookctx() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._DisplayHookCtx", false]], "_dummyast_node (class in pyflyby._parse)": [[17, "pyflyby._parse._DummyAst_Node", false]], "_dummyipythonembeddedapp (class in pyflyby._interactive)": [[13, "pyflyby._interactive._DummyIPythonEmbeddedApp", false]], "_empty (pyflyby._importclns.importmap attribute)": [[9, "pyflyby._importclns.ImportMap._EMPTY", false]], "_empty (pyflyby._importclns.importset attribute)": [[9, "pyflyby._importclns.ImportSet._EMPTY", false]], "_enable_ast_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_ast_hook", false]], "_enable_completer_hooks() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_completer_hooks", false]], "_enable_completion_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_completion_hook", false]], "_enable_debug_tools() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain._enable_debug_tools", false]], "_enable_debugger_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_debugger_hook", false]], "_enable_initializer_hooks() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_initializer_hooks", false]], "_enable_internal() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_internal", false]], "_enable_ipython_shell_bugfixes() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_ipython_shell_bugfixes", false]], "_enable_kernel_manager_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_kernel_manager_hook", false]], "_enable_ofind_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_ofind_hook", false]], "_enable_pdb_hooks() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._enable_pdb_hooks", false]], "_enable_prun_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_prun_hook", false]], "_enable_reset_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_reset_hook", false]], "_enable_run_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_run_hook", false]], "_enable_shell_hooks() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_shell_hooks", false]], "_enable_start_kernel_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_start_kernel_hook", false]], "_enable_terminal_pdb_hooks() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._enable_terminal_pdb_hooks", false]], "_enable_time_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_time_hook", false]], "_enable_timeit_hook() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._enable_timeit_hook", false]], "_enablestate (class in pyflyby._interactive)": [[13, "pyflyby._interactive._EnableState", false]], "_errored (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter._errored", false]], "_escape_for_gdb() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._escape_for_gdb", false]], "_excepthookctx() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._ExceptHookCtx", false]], "_expand_tripledots() (in module pyflyby._importdb)": [[10, "pyflyby._importdb._expand_tripledots", false]], "_fdctx() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._FdCtx", false]], "_field_defaults (pyflyby._importstmt.importsplit attribute)": [[12, "pyflyby._importstmt.ImportSplit._field_defaults", false]], "_field_defaults (pyflyby._parse.astnodecontext attribute)": [[17, "pyflyby._parse.AstNodeContext._field_defaults", false]], "_fields (pyflyby._importstmt.importsplit attribute)": [[12, "pyflyby._importstmt.ImportSplit._fields", false]], "_fields (pyflyby._parse.astnodecontext attribute)": [[17, "pyflyby._parse.AstNodeContext._fields", false]], "_find_earliest_backjump_label() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp._find_earliest_backjump_label", false]], "_find_etc_dirs() (in module pyflyby._importdb)": [[10, "pyflyby._importdb._find_etc_dirs", false]], "_find_loads_without_stores_in_code() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp._find_loads_without_stores_in_code", false]], "_find_missing_imports_in_ast() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp._find_missing_imports_in_ast", false]], "_find_missing_imports_in_code() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp._find_missing_imports_in_code", false]], "_find_options() (pyflyby._parse.ignoreoptionsdoctestparser method)": [[17, "pyflyby._parse.IgnoreOptionsDocTestParser._find_options", false]], "_find_py_commandline() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._find_py_commandline", false]], "_finish_deferred_load_checks() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._finish_deferred_load_checks", false]], "_flags_to_try() (in module pyflyby._parse)": [[17, "pyflyby._parse._flags_to_try", false]], "_flatten_ast_nodes() (in module pyflyby._parse)": [[17, "pyflyby._parse._flatten_ast_nodes", false]], "_format_age() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._format_age", false]], "_format_call() (in module pyflyby._py)": [[18, "pyflyby._py._format_call", false]], "_format_call_spec() (in module pyflyby._py)": [[18, "pyflyby._py._format_call_spec", false]], "_from_app() (pyflyby._interactive.autoimporter class method)": [[13, "pyflyby._interactive.AutoImporter._from_app", false]], "_from_args() (pyflyby._importclns.importset class method)": [[9, "pyflyby._importclns.ImportSet._from_args", false]], "_from_filename() (pyflyby._modules.modulehandle class method)": [[16, "pyflyby._modules.ModuleHandle._from_filename", false]], "_from_imports() (pyflyby._importclns.importset class method)": [[9, "pyflyby._importclns.ImportSet._from_imports", false]], "_from_lc() (pyflyby._file.filepos class method)": [[5, "pyflyby._file.FilePos._from_lc", false]], "_from_lines() (pyflyby._file.filetext class method)": [[5, "pyflyby._file.FileText._from_lines", false]], "_from_map() (pyflyby._importclns.importmap class method)": [[9, "pyflyby._importclns.ImportMap._from_map", false]], "_from_module() (pyflyby._modules.modulehandle class method)": [[16, "pyflyby._modules.ModuleHandle._from_module", false]], "_from_modulename() (pyflyby._modules.modulehandle class method)": [[16, "pyflyby._modules.ModuleHandle._from_modulename", false]], "_from_name() (pyflyby._idents.dottedidentifier class method)": [[8, "pyflyby._idents.DottedIdentifier._from_name", false]], "_from_source_code() (pyflyby._imports2s.sourcetosourcetransformationbase class method)": [[11, "pyflyby._imports2s.SourceToSourceTransformationBase._from_source_code", false]], "_generate_enabler_code() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._generate_enabler_code", false]], "_get_argspec() (in module pyflyby._py)": [[18, "pyflyby._py._get_argspec", false]], "_get_caller_frame() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._get_caller_frame", false]], "_get_definition_module() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._get_definition_module", false]], "_get_env_var() (in module pyflyby._importdb)": [[10, "pyflyby._importdb._get_env_var", false]], "_get_help() (in module pyflyby._py)": [[18, "pyflyby._py._get_help", false]], "_get_ipdb_class() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._get_IPdb_class", false]], "_get_ipython_app() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._get_ipython_app", false]], "_get_ipython_color_scheme() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._get_ipython_color_scheme", false]], "_get_module_py_file() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._get_module_py_file", false]], "_get_or_create_ipython_kernel_app() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._get_or_create_ipython_kernel_app", false]], "_get_or_create_ipython_terminal_app() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._get_or_create_ipython_terminal_app", false]], "_get_path() (in module pyflyby._file)": [[5, "pyflyby._file._get_PATH", false]], "_get_pdb_if_is_in_pdb() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._get_pdb_if_is_in_pdb", false]], "_get_python_path() (in module pyflyby._importdb)": [[10, "pyflyby._importdb._get_python_path", false]], "_get_scope_info() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._get_scope_info", false]], "_get_st_dev() (in module pyflyby._importdb)": [[10, "pyflyby._importdb._get_st_dev", false]], "_get_terminalpdb_class() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._get_TerminalPdb_class", false]], "_handle_user_exception() (in module pyflyby._py)": [[18, "pyflyby._py._handle_user_exception", false]], "_has_python_shebang() (in module pyflyby._py)": [[18, "pyflyby._py._has_python_shebang", false]], "_import_failed (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp._IMPORT_FAILED", false]], "_importset (pyflyby._importclns.importset attribute)": [[9, "pyflyby._importclns.ImportSet._importset", false]], "_infer_and_evaluate() (pyflyby._py.userexpr method)": [[18, "pyflyby._py.UserExpr._infer_and_evaluate", false]], "_initialize_and_start_app_with_autoimporter() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._initialize_and_start_app_with_autoimporter", false]], "_install_in_ipython_config_file_010() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._install_in_ipython_config_file_010", false]], "_install_in_ipython_config_file_011() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._install_in_ipython_config_file_011", false]], "_install_in_ipython_config_file_012() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._install_in_ipython_config_file_012", false]], "_install_in_ipython_config_file_40() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._install_in_ipython_config_file_40", false]], "_instance (pyflyby._interactive._ipython010terminalapplication attribute)": [[13, "pyflyby._interactive._IPython010TerminalApplication._instance", false]], "_interactive_prefix (pyflyby._log._pyflybyhandler attribute)": [[15, "pyflyby._log._PyflybyHandler._interactive_prefix", false]], "_interpret_arg_mode() (in module pyflyby._py)": [[18, "pyflyby._py._interpret_arg_mode", false]], "_interpret_module() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._interpret_module", false]], "_interpret_output_mode() (in module pyflyby._py)": [[18, "pyflyby._py._interpret_output_mode", false]], "_intint() (pyflyby._file.filepos static method)": [[5, "pyflyby._file.FilePos._intint", false]], "_ip (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter._ip", false]], "_ipython010terminalapplication (class in pyflyby._interactive)": [[13, "pyflyby._interactive._IPython010TerminalApplication", false]], "_ipython_in_multiline() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._ipython_in_multiline", false]], "_ipython_namespaces() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._ipython_namespaces", false]], "_is_ast_bytes() (in module pyflyby._parse)": [[17, "pyflyby._parse._is_ast_bytes", false]], "_is_ast_str() (in module pyflyby._parse)": [[17, "pyflyby._parse._is_ast_str", false]], "_is_ast_str_or_byte() (in module pyflyby._parse)": [[17, "pyflyby._parse._is_ast_str_or_byte", false]], "_is_comment_or_blank() (in module pyflyby._parse)": [[17, "pyflyby._parse._is_comment_or_blank", false]], "_is_interactive() (in module pyflyby._log)": [[15, "pyflyby._log._is_interactive", false]], "_is_ipython() (in module pyflyby._log)": [[15, "pyflyby._log._is_ipython", false]], "_iter_child_nodes_in_order() (in module pyflyby._parse)": [[17, "pyflyby._parse._iter_child_nodes_in_order", false]], "_iter_child_nodes_in_order_internal_1() (in module pyflyby._parse)": [[17, "pyflyby._parse._iter_child_nodes_in_order_internal_1", false]], "_levels (pyflyby._log.pyflybylogger attribute)": [[15, "pyflyby._log.PyflybyLogger._LEVELS", false]], "_lineno (pyflyby._autoimp._missingimportfinder attribute)": [[1, "pyflyby._autoimp._MissingImportFinder._lineno", false]], "_lineno_to_index() (pyflyby._file.filetext method)": [[5, "pyflyby._file.FileText._lineno_to_index", false]], "_lines (pyflyby._file.filetext attribute)": [[5, "pyflyby._file.FileText._lines", false]], "_list_members_for_completion() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._list_members_for_completion", false]], "_livepatch__class() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._livepatch__class", false]], "_livepatch__dict() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._livepatch__dict", false]], "_livepatch__function() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._livepatch__function", false]], "_livepatch__method() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._livepatch__method", false]], "_livepatch__module() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._livepatch__module", false]], "_livepatch__object() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._livepatch__object", false]], "_livepatch__setattr() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._livepatch__setattr", false]], "_logged_anything_during_context (pyflyby._log._pyflybyhandler attribute)": [[15, "pyflyby._log._PyflybyHandler._logged_anything_during_context", false]], "_make() (pyflyby._importstmt.importsplit class method)": [[12, "pyflyby._importstmt.ImportSplit._make", false]], "_make() (pyflyby._parse.astnodecontext class method)": [[17, "pyflyby._parse.AstNodeContext._make", false]], "_max_line_lenght_default (pyflyby._format.formatparams attribute)": [[7, "pyflyby._format.FormatParams._max_line_lenght_default", false]], "_member_from_node() (pyflyby._modules.modulehandle static method)": [[16, "pyflyby._modules.ModuleHandle._member_from_node", false]], "_merge() (pyflyby._importclns.importmap class method)": [[9, "pyflyby._importclns.ImportMap._merge", false]], "_missingimportfinder (class in pyflyby._autoimp)": [[1, "pyflyby._autoimp._MissingImportFinder", false]], "_my_iter_modules() (in module pyflyby._modules)": [[16, "pyflyby._modules._my_iter_modules", false]], "_namespace (class in pyflyby._py)": [[18, "pyflyby._py._Namespace", false]], "_newscopectx() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._NewScopeCtx", false]], "_noninteractive_prefix (pyflyby._log._pyflybyhandler attribute)": [[15, "pyflyby._log._PyflybyHandler._noninteractive_prefix", false]], "_nottyerror": [[4, "pyflyby._dbg._NoTtyError", false]], "_one_one (pyflyby._file.filepos attribute)": [[5, "pyflyby._file.FilePos._ONE_ONE", false]], "_output (pyflyby._imports2s.sourcetosourcetransformation attribute)": [[11, "pyflyby._imports2s.SourceToSourceTransformation._output", false]], "_override_excepthook() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._override_excepthook", false]], "_parse_ast_nodes() (in module pyflyby._parse)": [[17, "pyflyby._parse._parse_ast_nodes", false]], "_parse_auto_apply_args() (in module pyflyby._py)": [[18, "pyflyby._py._parse_auto_apply_args", false]], "_parse_global_opts() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain._parse_global_opts", false]], "_parseinterruptedwanthelp": [[18, "pyflyby._py._ParseInterruptedWantHelp", false]], "_parseinterruptedwantsource": [[18, "pyflyby._py._ParseInterruptedWantSource", false]], "_pre_exit() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain._pre_exit", false]], "_pre_exit_interactive_shell() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain._pre_exit_interactive_shell", false]], "_pre_exit_matplotlib_show() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain._pre_exit_matplotlib_show", false]], "_pre_log_function (pyflyby._log._pyflybyhandler attribute)": [[15, "pyflyby._log._PyflybyHandler._pre_log_function", false]], "_prompt_continue_waiting_for_debugger() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._prompt_continue_waiting_for_debugger", false]], "_prompttoolkitstdoutproxyrawctx() (in module pyflyby._log)": [[15, "pyflyby._log._PromptToolkitStdoutProxyRawCtx", false]], "_pyflybyhandler (class in pyflyby._log)": [[15, "pyflyby._log._PyflybyHandler", false]], "_pymain (class in pyflyby._py)": [[18, "pyflyby._py._PyMain", false]], "_python_can_import_pyflyby() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._python_can_import_pyflyby", false]], "_reformat_helper() (in module pyflyby._comms)": [[3, "pyflyby._comms._reformat_helper", false]], "_register_target() (in module pyflyby._comms)": [[3, "pyflyby._comms._register_target", false]], "_remote_print_stack_to_file() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._remote_print_stack_to_file", false]], "_remove_from_missing_imports() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._remove_from_missing_imports", false]], "_replace() (pyflyby._importstmt.importsplit method)": [[12, "pyflyby._importstmt.ImportSplit._replace", false]], "_replace() (pyflyby._parse.astnodecontext method)": [[17, "pyflyby._parse.AstNodeContext._replace", false]], "_requires_parens_as_function() (in module pyflyby._py)": [[18, "pyflyby._py._requires_parens_as_function", false]], "_reset_excepthook() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._reset_excepthook", false]], "_run_action() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain._run_action", false]], "_safe_call() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter._safe_call", false]], "_scan_node() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._scan_node", false]], "_scan_unused_imports() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._scan_unused_imports", false]], "_seems_like_runnable_module() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain._seems_like_runnable_module", false]], "_send_email_with_attach_instructions() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._send_email_with_attach_instructions", false]], "_signal_handler_debugger() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._signal_handler_debugger", false]], "_sigpipe_handler() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline._sigpipe_handler", false]], "_sigterm_handler() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._sigterm_handler", false]], "_skip_frames() (in module pyflyby._interactive)": [[13, "pyflyby._interactive._skip_frames", false]], "_sleep_until_debugger_attaches() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._sleep_until_debugger_attaches", false]], "_split_code_lines() (in module pyflyby._parse)": [[17, "pyflyby._parse._split_code_lines", false]], "_state (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter._state", false]], "_stdioctx() (in module pyflyby._dbg)": [[4, "pyflyby._dbg._StdioCtx", false]], "_tempfile() (pyflyby._cmdline.modifier method)": [[2, "pyflyby._cmdline.Modifier._tempfile", false]], "_test_parse_string_literal() (in module pyflyby._parse)": [[17, "pyflyby._parse._test_parse_string_literal", false]], "_try_import() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp._try_import", false]], "_upscopectx() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._UpScopeCtx", false]], "_usechecker (class in pyflyby._autoimp)": [[1, "pyflyby._autoimp._UseChecker", false]], "_validate_alias() (in module pyflyby._importstmt)": [[12, "pyflyby._importstmt._validate_alias", false]], "_visit__all__() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit__all__", false]], "_visit_fullname() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_fullname", false]], "_visit_load() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_Load", false]], "_visit_load_defered() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_Load_defered", false]], "_visit_load_defered_global() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_Load_defered_global", false]], "_visit_load_immediate() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_Load_immediate", false]], "_visit_store() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_Store", false]], "_visit_storeimport() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_StoreImport", false]], "_visit_typecomment() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder._visit_typecomment", false]], "_walk_ast_nodes_in_order() (in module pyflyby._parse)": [[17, "pyflyby._parse._walk_ast_nodes_in_order", false]], "_wrapper (pyflyby._util.aspect attribute)": [[19, "pyflyby._util.Aspect._wrapper", false]], "_writabledictproxy (class in pyflyby._util)": [[19, "pyflyby._util._WritableDictProxy", false]], "_xreload_module() (in module pyflyby._livepatch)": [[14, "pyflyby._livepatch._xreload_module", false]], "abortactions": [[2, "pyflyby._cmdline.AbortActions", false]], "action_exit1() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.action_exit1", false]], "action_external_command() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.action_external_command", false]], "action_ifchanged() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.action_ifchanged", false]], "action_print() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.action_print", false]], "action_query() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.action_query", false]], "action_replace() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.action_replace", false]], "add_import() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.add_import", false]], "advicectx() (in module pyflyby._util)": [[19, "pyflyby._util.AdviceCtx", false]], "advise() (in module pyflyby._util)": [[19, "pyflyby._util.advise", false]], "advise() (pyflyby._util.aspect method)": [[19, "pyflyby._util.Aspect.advise", false]], "align_future (pyflyby._importstmt.importformatparams attribute)": [[12, "pyflyby._importstmt.ImportFormatParams.align_future", false]], "align_imports (pyflyby._importstmt.importformatparams attribute)": [[12, "pyflyby._importstmt.ImportFormatParams.align_imports", false]], "alter() (pyflyby._file.filetext method)": [[5, "pyflyby._file.FileText.alter", false]], "ancestors (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.ancestors", false]], "annotatedast (class in pyflyby._parse)": [[17, "pyflyby._parse.AnnotatedAst", false]], "annotatedmodule (class in pyflyby._parse)": [[17, "pyflyby._parse.AnnotatedModule", false]], "app (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter.app", false]], "append() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.append", false]], "apply() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.apply", false]], "aspect (class in pyflyby._util)": [[19, "pyflyby._util.Aspect", false]], "astnodecontext (class in pyflyby._parse)": [[17, "pyflyby._parse.AstNodeContext", false]], "atomic_write_file() (in module pyflyby._file)": [[5, "pyflyby._file.atomic_write_file", false]], "auto_apply() (in module pyflyby._py)": [[18, "pyflyby._py.auto_apply", false]], "auto_eval() (pyflyby._py._namespace method)": [[18, "pyflyby._py._Namespace.auto_eval", false]], "auto_import() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter.auto_import", false]], "auto_import() (pyflyby._py._namespace method)": [[18, "pyflyby._py._Namespace.auto_import", false]], "auto_import_symbol() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp.auto_import_symbol", false]], "autoimporter (class in pyflyby._interactive)": [[13, "pyflyby._interactive.AutoImporter", false]], "baddottedidentifiererror": [[8, "pyflyby._idents.BadDottedIdentifierError", false]], "block (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.block", false]], "brace_identifiers() (in module pyflyby._idents)": [[8, "pyflyby._idents.brace_identifiers", false]], "by_import_as (pyflyby._importclns.importset property)": [[9, "pyflyby._importclns.ImportSet.by_import_as", false]], "clear_failed_imports_cache() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp.clear_failed_imports_cache", false]], "clone_top() (pyflyby._autoimp.scopestack method)": [[1, "pyflyby._autoimp.ScopeStack.clone_top", false]], "cmp() (in module pyflyby._util)": [[19, "pyflyby._util.cmp", false]], "col_offset (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.col_offset", false]], "collect_code_with_imports_on_top() (in module pyflyby._comms)": [[3, "pyflyby._comms.collect_code_with_imports_on_top", false]], "colno (pyflyby._file.filepos attribute)": [[5, "pyflyby._file.FilePos.colno", false]], "comm_close_handler() (in module pyflyby._comms)": [[3, "pyflyby._comms.comm_close_handler", false]], "comm_open_handler() (in module pyflyby._comms)": [[3, "pyflyby._comms.comm_open_handler", false]], "communicate() (pyflyby._dbg.pty method)": [[4, "pyflyby._dbg.Pty.communicate", false]], "compile_with_autoimport() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter.compile_with_autoimport", false]], "compilerflags() (in module pyflyby._flags)": [[6, "pyflyby._flags.CompilerFlags", false]], "complete_symbol() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.complete_symbol", false]], "complete_symbol() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter.complete_symbol", false]], "concatenate() (pyflyby._file.filetext class method)": [[5, "pyflyby._file.FileText.concatenate", false]], "conflicting_imports (pyflyby._importclns.importset property)": [[9, "pyflyby._importclns.ImportSet.conflicting_imports", false]], "conflictingimportserror": [[9, "pyflyby._importclns.ConflictingImportsError", false]], "containing() (pyflyby._modules.modulehandle class method)": [[16, "pyflyby._modules.ModuleHandle.containing", false]], "count() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.count", false]], "create_ipython_app() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.create_ipython_app", false]], "cwdctx() (in module pyflyby._util)": [[19, "pyflyby._util.CwdCtx", false]], "db (pyflyby._interactive.autoimporter attribute)": [[13, "pyflyby._interactive.AutoImporter.db", false]], "debug_enabled (pyflyby._log.pyflybylogger property)": [[15, "pyflyby._log.PyflybyLogger.debug_enabled", false]], "debuggerattachtimeouterror": [[4, "pyflyby._dbg.DebuggerAttachTimeoutError", false]], "disable() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter.disable", false]], "disabled (pyflyby._interactive._enablestate attribute)": [[13, "pyflyby._interactive._EnableState.DISABLED", false]], "disabling (pyflyby._interactive._enablestate attribute)": [[13, "pyflyby._interactive._EnableState.DISABLING", false]], "dotted_prefixes() (in module pyflyby._idents)": [[8, "pyflyby._idents.dotted_prefixes", false]], "dottedidentifier (class in pyflyby._idents)": [[8, "pyflyby._idents.DottedIdentifier", false]], "emit() (pyflyby._log._pyflybyhandler method)": [[15, "pyflyby._log._PyflybyHandler.emit", false]], "enable() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter.enable", false]], "enable_sigterm_handler() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.enable_sigterm_handler", false]], "enabled (pyflyby._interactive._enablestate attribute)": [[13, "pyflyby._interactive._EnableState.ENABLED", false]], "enabling (pyflyby._interactive._enablestate attribute)": [[13, "pyflyby._interactive._EnableState.ENABLING", false]], "endpos (pyflyby._file.filetext property)": [[5, "pyflyby._file.FileText.endpos", false]], "endpos (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.endpos", false]], "envvarctx() (in module pyflyby._util)": [[19, "pyflyby._util.EnvVarCtx", false]], "errorduringimporterror": [[16, "pyflyby._modules.ErrorDuringImportError", false]], "eval() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.eval", false]], "excludeimplicitcwdfrompathctx() (in module pyflyby._util)": [[19, "pyflyby._util.ExcludeImplicitCwdFromPathCtx", false]], "exec_stdin() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.exec_stdin", false]], "execfile() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.execfile", false]], "exists (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.exists", false]], "exit1": [[2, "pyflyby._cmdline.Exit1", false]], "expand_py_files_from_args() (in module pyflyby._file)": [[5, "pyflyby._file.expand_py_files_from_args", false]], "exports (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.exports", false]], "extend() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.extend", false]], "extract_import_statements() (in module pyflyby._comms)": [[3, "pyflyby._comms.extract_import_statements", false]], "field (pyflyby._parse.astnodecontext attribute)": [[17, "pyflyby._parse.AstNodeContext.field", false]], "filename (pyflyby._file.filetext attribute)": [[5, "pyflyby._file.FileText.filename", false]], "filename (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.filename", false]], "filename_args() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.filename_args", false]], "filepos (class in pyflyby._file)": [[5, "pyflyby._file.FilePos", false]], "filetext (class in pyflyby._file)": [[5, "pyflyby._file.FileText", false]], "fill() (in module pyflyby._format)": [[7, "pyflyby._format.fill", false]], "find_import_block_by_lineno() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.find_import_block_by_lineno", false]], "find_missing_imports() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.find_missing_imports", false]], "fix_unused_and_missing_imports() (in module pyflyby._imports2s)": [[11, "pyflyby._imports2s.fix_unused_and_missing_imports", false]], "flags (pyflyby._importclns.importset property)": [[9, "pyflyby._importclns.ImportSet.flags", false]], "flags (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.flags", false]], "formatparams (class in pyflyby._format)": [[7, "pyflyby._format.FormatParams", false]], "from_filename() (pyflyby._file.filetext class method)": [[5, "pyflyby._file.FileText.from_filename", false]], "from_spaces (pyflyby._importstmt.importformatparams attribute)": [[12, "pyflyby._importstmt.ImportFormatParams.from_spaces", false]], "functionwithglobals (class in pyflyby._util)": [[19, "pyflyby._util.FunctionWithGlobals", false]], "generic_visit() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.generic_visit", false]], "get() (pyflyby._util._writabledictproxy method)": [[19, "pyflyby._util._WritableDictProxy.get", false]], "get_executable() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.get_executable", false]], "get_global_namespaces() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.get_global_namespaces", false]], "get_ipython_terminal_app_with_autoimporter() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.get_ipython_terminal_app_with_autoimporter", false]], "get_known_import() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp.get_known_import", false]], "get_statements() (pyflyby._importclns.importset method)": [[9, "pyflyby._importclns.ImportSet.get_statements", false]], "hanging_indent (pyflyby._format.formatparams attribute)": [[7, "pyflyby._format.FormatParams.hanging_indent", false]], "has_star_import() (pyflyby._autoimp.scopestack method)": [[1, "pyflyby._autoimp.ScopeStack.has_star_import", false]], "heuristic_cmd() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.heuristic_cmd", false]], "heuristic_run_module() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.heuristic_run_module", false]], "hfmt() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.hfmt", false]], "hookctx() (pyflyby._log._pyflybyhandler method)": [[15, "pyflyby._log._PyflybyHandler.HookCtx", false]], "hookctx() (pyflyby._log.pyflybylogger method)": [[15, "pyflyby._log.PyflybyLogger.HookCtx", false]], "ignoreoptionsdoctestparser (class in pyflyby._parse)": [[17, "pyflyby._parse.IgnoreOptionsDocTestParser", false]], "import_as (pyflyby._importstmt.importsplit attribute)": [[12, "pyflyby._importstmt.ImportSplit.import_as", false]], "import_module() (in module pyflyby._modules)": [[16, "pyflyby._modules.import_module", false]], "importalreadyexistserror": [[11, "pyflyby._imports2s.ImportAlreadyExistsError", false]], "importformatparams (class in pyflyby._importstmt)": [[12, "pyflyby._importstmt.ImportFormatParams", false]], "importmap (class in pyflyby._importclns)": [[9, "pyflyby._importclns.ImportMap", false]], "importpathctx() (in module pyflyby._util)": [[19, "pyflyby._util.ImportPathCtx", false]], "importpathforrelativeimportsctx() (in module pyflyby._imports2s)": [[11, "pyflyby._imports2s.ImportPathForRelativeImportsCtx", false]], "imports (pyflyby._importclns.importset property)": [[9, "pyflyby._importclns.ImportSet.imports", false]], "importset (class in pyflyby._importclns)": [[9, "pyflyby._importclns.ImportSet", false]], "importsplit (class in pyflyby._importstmt)": [[12, "pyflyby._importstmt.ImportSplit", false]], "in_jupyter() (in module pyflyby._comms)": [[3, "pyflyby._comms.in_jupyter", false]], "indent (pyflyby._format.formatparams attribute)": [[7, "pyflyby._format.FormatParams.indent", false]], "indent() (in module pyflyby._util)": [[19, "pyflyby._util.indent", false]], "index (pyflyby._parse.astnodecontext attribute)": [[17, "pyflyby._parse.AstNodeContext.index", false]], "index() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.index", false]], "infer_compile_mode() (in module pyflyby._parse)": [[17, "pyflyby._parse.infer_compile_mode", false]], "info_enabled (pyflyby._log.pyflybylogger property)": [[15, "pyflyby._log.PyflybyLogger.info_enabled", false]], "init_shell() (pyflyby._interactive._ipython010terminalapplication method)": [[13, "pyflyby._interactive._IPython010TerminalApplication.init_shell", false]], "initialize() (pyflyby._interactive._ipython010terminalapplication method)": [[13, "pyflyby._interactive._IPython010TerminalApplication.initialize", false]], "initialize_comms() (in module pyflyby._comms)": [[3, "pyflyby._comms.initialize_comms", false]], "inject() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.inject", false]], "input (pyflyby._imports2s.sourcetosourcetransformationbase attribute)": [[11, "pyflyby._imports2s.SourceToSourceTransformationBase.input", false]], "input_content (pyflyby._cmdline.modifier property)": [[2, "pyflyby._cmdline.Modifier.input_content", false]], "input_content_filename (pyflyby._cmdline.modifier property)": [[2, "pyflyby._cmdline.Modifier.input_content_filename", false]], "insert() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.insert", false]], "insert_new_blocks_after_comments() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.insert_new_blocks_after_comments", false]], "insert_new_import_block() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.insert_new_import_block", false]], "instance() (pyflyby._interactive._ipython010terminalapplication class method)": [[13, "pyflyby._interactive._IPython010TerminalApplication.instance", false]], "interceptprintsduringpromptctx() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.InterceptPrintsDuringPromptCtx", false]], "is_identifier() (in module pyflyby._idents)": [[8, "pyflyby._idents.is_identifier", false]], "items() (pyflyby._importclns.importmap method)": [[9, "pyflyby._importclns.ImportMap.items", false]], "iteritems() (pyflyby._importclns.importmap method)": [[9, "pyflyby._importclns.ImportMap.iteritems", false]], "iterkeys() (pyflyby._importclns.importmap method)": [[9, "pyflyby._importclns.ImportMap.iterkeys", false]], "joined (pyflyby._file.filetext property)": [[5, "pyflyby._file.FileText.joined", false]], "keys() (pyflyby._importclns.importmap method)": [[9, "pyflyby._importclns.ImportMap.keys", false]], "kill_process() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.kill_process", false]], "lieneno (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.lieneno", false]], "lineno (pyflyby._autoimp._usechecker attribute)": [[1, "pyflyby._autoimp._UseChecker.lineno", false]], "lineno (pyflyby._file.filepos attribute)": [[5, "pyflyby._file.FilePos.lineno", false]], "linenumberambiguouserror": [[11, "pyflyby._imports2s.LineNumberAmbiguousError", false]], "linenumbernotfounderror": [[11, "pyflyby._imports2s.LineNumberNotFoundError", false]], "lines (pyflyby._file.filetext property)": [[5, "pyflyby._file.FileText.lines", false]], "list() (pyflyby._modules.modulehandle static method)": [[16, "pyflyby._modules.ModuleHandle.list", false]], "load_symbol() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp.load_symbol", false]], "loadsymbolerror": [[1, "pyflyby._autoimp.LoadSymbolError", false]], "loggedlist (class in pyflyby._py)": [[18, "pyflyby._py.LoggedList", false]], "longest_common_prefix() (in module pyflyby._util)": [[19, "pyflyby._util.longest_common_prefix", false]], "maindoc() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.maindoc", false]], "max_line_length (pyflyby._format.formatparams attribute)": [[7, "pyflyby._format.FormatParams.max_line_length", false]], "member_name (pyflyby._importstmt.importsplit attribute)": [[12, "pyflyby._importstmt.ImportSplit.member_name", false]], "member_names (pyflyby._importclns.importset property)": [[9, "pyflyby._importclns.ImportSet.member_names", false]], "merged_to_two() (pyflyby._autoimp.scopestack method)": [[1, "pyflyby._autoimp.ScopeStack.merged_to_two", false]], "missing_imports (pyflyby._autoimp._missingimportfinder attribute)": [[1, "pyflyby._autoimp._MissingImportFinder.missing_imports", false]], "modifier (class in pyflyby._cmdline)": [[2, "pyflyby._cmdline.Modifier", false]], "module": [[1, "module-pyflyby._autoimp", false], [2, "module-pyflyby._cmdline", false], [3, "module-pyflyby._comms", false], [4, "module-pyflyby._dbg", false], [5, "module-pyflyby._file", false], [6, "module-pyflyby._flags", false], [7, "module-pyflyby._format", false], [8, "module-pyflyby._idents", false], [9, "module-pyflyby._importclns", false], [10, "module-pyflyby._importdb", false], [11, "module-pyflyby._imports2s", false], [12, "module-pyflyby._importstmt", false], [13, "module-pyflyby._interactive", false], [14, "module-pyflyby._livepatch", false], [15, "module-pyflyby._log", false], [16, "module-pyflyby._modules", false], [17, "module-pyflyby._parse", false], [18, "module-pyflyby._py", false], [19, "module-pyflyby._util", false]], "module (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.module", false]], "module_name (pyflyby._importstmt.importsplit attribute)": [[12, "pyflyby._importstmt.ImportSplit.module_name", false]], "modulehandle (class in pyflyby._modules)": [[16, "pyflyby._modules.ModuleHandle", false]], "name (pyflyby._autoimp._usechecker attribute)": [[1, "pyflyby._autoimp._UseChecker.name", false]], "name (pyflyby._idents.dottedidentifier attribute)": [[8, "pyflyby._idents.DottedIdentifier.name", false]], "name (pyflyby._modules.modulehandle attribute)": [[16, "pyflyby._modules.ModuleHandle.name", false]], "nested() (in module pyflyby._util)": [[19, "pyflyby._util.nested", false]], "new_ipdb_instance() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.new_IPdb_instance", false]], "noactiveipythonapperror": [[13, "pyflyby._interactive.NoActiveIPythonAppError", false]], "noimportblockerror": [[11, "pyflyby._imports2s.NoImportBlockError", false]], "noipythonpackageerror": [[13, "pyflyby._interactive.NoIPythonPackageError", false]], "nosuchimporterror": [[9, "pyflyby._importclns.NoSuchImportError", false]], "notafunctionerror": [[18, "pyflyby._py.NotAFunctionError", false]], "nullctx() (in module pyflyby._util)": [[19, "pyflyby._util.NullCtx", false]], "output() (pyflyby._imports2s.sourcetosourcetransformationbase method)": [[11, "pyflyby._imports2s.SourceToSourceTransformationBase.output", false]], "output_content (pyflyby._cmdline.modifier property)": [[2, "pyflyby._cmdline.Modifier.output_content", false]], "output_content_filename (pyflyby._cmdline.modifier property)": [[2, "pyflyby._cmdline.Modifier.output_content_filename", false]], "parent (pyflyby._idents.dottedidentifier property)": [[8, "pyflyby._idents.DottedIdentifier.parent", false]], "parent (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.parent", false]], "parent (pyflyby._parse.astnodecontext attribute)": [[17, "pyflyby._parse.AstNodeContext.parent", false]], "parse_args() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.parse_args", false]], "parse_docstrings (pyflyby._autoimp._missingimportfinder attribute)": [[1, "pyflyby._autoimp._MissingImportFinder.parse_docstrings", false]], "parseerror": [[18, "pyflyby._py.ParseError", false]], "partition() (in module pyflyby._util)": [[19, "pyflyby._util.partition", false]], "parts (pyflyby._idents.dottedidentifier attribute)": [[8, "pyflyby._idents.DottedIdentifier.parts", false]], "pop() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.pop", false]], "prefixes (pyflyby._idents.dottedidentifier property)": [[8, "pyflyby._idents.DottedIdentifier.prefixes", false]], "prefixes() (in module pyflyby._util)": [[19, "pyflyby._util.prefixes", false]], "preprocess() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.preprocess", false]], "preprocess() (pyflyby._imports2s.sourcetosourceimportblocktransformation method)": [[11, "pyflyby._imports2s.SourceToSourceImportBlockTransformation.preprocess", false]], "preprocess() (pyflyby._imports2s.sourcetosourcetransformation method)": [[11, "pyflyby._imports2s.SourceToSourceTransformation.preprocess", false]], "preprocess() (pyflyby._imports2s.sourcetosourcetransformationbase method)": [[11, "pyflyby._imports2s.SourceToSourceTransformationBase.preprocess", false]], "pretty_print() (pyflyby._importclns.importset method)": [[9, "pyflyby._importclns.ImportSet.pretty_print", false]], "pretty_print() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.pretty_print", false]], "pretty_print() (pyflyby._imports2s.sourcetosourceimportblocktransformation method)": [[11, "pyflyby._imports2s.SourceToSourceImportBlockTransformation.pretty_print", false]], "pretty_print() (pyflyby._imports2s.sourcetosourcetransformation method)": [[11, "pyflyby._imports2s.SourceToSourceTransformation.pretty_print", false]], "pretty_print() (pyflyby._imports2s.sourcetosourcetransformationbase method)": [[11, "pyflyby._imports2s.SourceToSourceTransformationBase.pretty_print", false]], "print_help() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.print_help", false]], "print_result() (in module pyflyby._py)": [[18, "pyflyby._py.print_result", false]], "print_verbose_tb() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.print_verbose_tb", false]], "print_version() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.print_version", false]], "print_version_and_exit() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.print_version_and_exit", false]], "process_actions() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.process_actions", false]], "process_exists() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.process_exists", false]], "pty (class in pyflyby._dbg)": [[4, "pyflyby._dbg.Pty", false]], "py_main() (in module pyflyby._py)": [[18, "pyflyby._py.py_main", false]], "pyc_to_py() (in module pyflyby._modules)": [[16, "pyflyby._modules.pyc_to_py", false]], "pyfill() (in module pyflyby._format)": [[7, "pyflyby._format.pyfill", false]], "pyflyby._autoimp": [[1, "module-pyflyby._autoimp", false]], "pyflyby._cmdline": [[2, "module-pyflyby._cmdline", false]], "pyflyby._comms": [[3, "module-pyflyby._comms", false]], "pyflyby._dbg": [[4, "module-pyflyby._dbg", false]], "pyflyby._file": [[5, "module-pyflyby._file", false]], "pyflyby._flags": [[6, "module-pyflyby._flags", false]], "pyflyby._format": [[7, "module-pyflyby._format", false]], "pyflyby._idents": [[8, "module-pyflyby._idents", false]], "pyflyby._importclns": [[9, "module-pyflyby._importclns", false]], "pyflyby._importdb": [[10, "module-pyflyby._importdb", false]], "pyflyby._imports2s": [[11, "module-pyflyby._imports2s", false]], "pyflyby._importstmt": [[12, "module-pyflyby._importstmt", false]], "pyflyby._interactive": [[13, "module-pyflyby._interactive", false]], "pyflyby._livepatch": [[14, "module-pyflyby._livepatch", false]], "pyflyby._log": [[15, "module-pyflyby._log", false]], "pyflyby._modules": [[16, "module-pyflyby._modules", false]], "pyflyby._parse": [[17, "module-pyflyby._parse", false]], "pyflyby._py": [[18, "module-pyflyby._py", false]], "pyflyby._util": [[19, "module-pyflyby._util", false]], "pyflybylogger (class in pyflyby._log)": [[15, "pyflyby._log.PyflybyLogger", false]], "read_black_config() (in module pyflyby._importstmt)": [[12, "pyflyby._importstmt.read_black_config", false]], "read_file() (in module pyflyby._file)": [[5, "pyflyby._file.read_file", false]], "remove() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.remove", false]], "remove_comms() (in module pyflyby._comms)": [[3, "pyflyby._comms.remove_comms", false]], "remove_import() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.remove_import", false]], "reset_state_new_cell() (pyflyby._interactive.autoimporter method)": [[13, "pyflyby._interactive.AutoImporter.reset_state_new_cell", false]], "reverse() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.reverse", false]], "run() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.run", false]], "run_ipython_line_magic() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.run_ipython_line_magic", false]], "run_module() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.run_module", false]], "run_tidy_imports() (in module pyflyby._comms)": [[3, "pyflyby._comms.run_tidy_imports", false]], "s (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.s", false]], "scan_for_import_issues() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp.scan_for_import_issues", false]], "scan_for_import_issues() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.scan_for_import_issues", false]], "scope_info (pyflyby._idents.dottedidentifier attribute)": [[8, "pyflyby._idents.DottedIdentifier.scope_info", false]], "scopestack (class in pyflyby._autoimp)": [[1, "pyflyby._autoimp.ScopeStack", false]], "scopestack (pyflyby._autoimp._missingimportfinder attribute)": [[1, "pyflyby._autoimp._MissingImportFinder.scopestack", false]], "select_import_block_by_closest_prefix_match() (pyflyby._imports2s.sourcetosourcefileimportstransformation method)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation.select_import_block_by_closest_prefix_match", false]], "send_comm_message() (in module pyflyby._comms)": [[3, "pyflyby._comms.send_comm_message", false]], "separate_from_imports (pyflyby._importstmt.importformatparams attribute)": [[12, "pyflyby._importstmt.ImportFormatParams.separate_from_imports", false]], "set_level() (pyflyby._log.pyflybylogger method)": [[15, "pyflyby._log.PyflybyLogger.set_level", false]], "setraw_but_sigint() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.setraw_but_sigint", false]], "sort() (pyflyby._py.loggedlist method)": [[18, "pyflyby._py.LoggedList.sort", false]], "source (pyflyby._autoimp._usechecker attribute)": [[1, "pyflyby._autoimp._UseChecker.source", false]], "source_flags (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.source_flags", false]], "source_flags (pyflyby._parse.annotatedmodule attribute)": [[17, "pyflyby._parse.AnnotatedModule.source_flags", false]], "sourcetosourcefileimportstransformation (class in pyflyby._imports2s)": [[11, "pyflyby._imports2s.SourceToSourceFileImportsTransformation", false]], "sourcetosourceimportblocktransformation (class in pyflyby._imports2s)": [[11, "pyflyby._imports2s.SourceToSourceImportBlockTransformation", false]], "sourcetosourcetransformation (class in pyflyby._imports2s)": [[11, "pyflyby._imports2s.SourceToSourceTransformation", false]], "sourcetosourcetransformationbase (class in pyflyby._imports2s)": [[11, "pyflyby._imports2s.SourceToSourceTransformationBase", false]], "stable_unique() (in module pyflyby._util)": [[19, "pyflyby._util.stable_unique", false]], "start() (pyflyby._interactive._ipython010terminalapplication method)": [[13, "pyflyby._interactive._IPython010TerminalApplication.start", false]], "start_ipython() (pyflyby._py._pymain method)": [[18, "pyflyby._py._PyMain.start_ipython", false]], "start_ipython_kernel_with_autoimporter() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.start_ipython_kernel_with_autoimporter", false]], "start_ipython_with_autoimporter() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.start_ipython_with_autoimporter", false]], "startpos (pyflyby._file.filetext attribute)": [[5, "pyflyby._file.FileText.startpos", false]], "startpos (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.startpos", false]], "startswith() (pyflyby._idents.dottedidentifier method)": [[8, "pyflyby._idents.DottedIdentifier.startswith", false]], "statements (pyflyby._importclns.importset property)": [[9, "pyflyby._importclns.ImportSet.statements", false]], "submodules (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.submodules", false]], "symbol_needs_import() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp.symbol_needs_import", false]], "symlink_callback() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.symlink_callback", false]], "symlink_error() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.symlink_error", false]], "symlink_follow() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.symlink_follow", false]], "symlink_replace() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.symlink_replace", false]], "symlink_skip() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.symlink_skip", false]], "syntax() (in module pyflyby._cmdline)": [[2, "pyflyby._cmdline.syntax", false]], "sysargvctx() (in module pyflyby._py)": [[18, "pyflyby._py.SysArgvCtx", false]], "syscall_marker() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.syscall_marker", false]], "take_arg() (in module pyflyby._autoimp)": [[1, "pyflyby._autoimp.take_arg", false]], "text (pyflyby._modules.modulehandle property)": [[16, "pyflyby._modules.ModuleHandle.text", false]], "text (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.text", false]], "tty_is_usable() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.tty_is_usable", false]], "unaccessed (pyflyby._py.loggedlist property)": [[18, "pyflyby._py.LoggedList.unaccessed", false]], "unadvise() (pyflyby._util.aspect method)": [[19, "pyflyby._util.Aspect.unadvise", false]], "unimportablenameerror": [[18, "pyflyby._py.UnimportableNameError", false]], "unknownmoduleerror": [[14, "pyflyby._livepatch.UnknownModuleError", false]], "unsafefilenameerror": [[5, "pyflyby._file.UnsafeFilenameError", false]], "unused_imports (pyflyby._autoimp._missingimportfinder attribute)": [[1, "pyflyby._autoimp._MissingImportFinder.unused_imports", false]], "updateipythonstdioctx() (in module pyflyby._interactive)": [[13, "pyflyby._interactive.UpdateIPythonStdioCtx", false]], "use_black (pyflyby._format.formatparams attribute)": [[7, "pyflyby._format.FormatParams.use_black", false]], "used (pyflyby._autoimp._usechecker attribute)": [[1, "pyflyby._autoimp._UseChecker.used", false]], "userexpr (class in pyflyby._py)": [[18, "pyflyby._py.UserExpr", false]], "value (pyflyby._parse.annotatedast attribute)": [[17, "pyflyby._parse.AnnotatedAst.value", false]], "values() (pyflyby._importclns.importmap method)": [[9, "pyflyby._importclns.ImportMap.values", false]], "visit() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit", false]], "visit_alias() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_alias", false]], "visit_arg() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_arg", false]], "visit_arguments() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_arguments", false]], "visit_assign() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Assign", false]], "visit_asyncfunctiondef() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_AsyncFunctionDef", false]], "visit_attribute() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Attribute", false]], "visit_call() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Call", false]], "visit_classdef() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_ClassDef", false]], "visit_comprehension() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_comprehension", false]], "visit_constant() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Constant", false]], "visit_delete() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Delete", false]], "visit_dict() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Dict", false]], "visit_dictcomp() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_DictComp", false]], "visit_excepthandler() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_ExceptHandler", false]], "visit_expr() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Expr", false]], "visit_functiondef() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_FunctionDef", false]], "visit_generatorexp() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_GeneratorExp", false]], "visit_importfrom() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_ImportFrom", false]], "visit_lambda() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Lambda", false]], "visit_listcomp() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_ListComp", false]], "visit_match() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Match", false]], "visit_match_case() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_match_case", false]], "visit_matchas() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_MatchAs", false]], "visit_matchmapping() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_MatchMapping", false]], "visit_module() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Module", false]], "visit_name() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Name", false]], "visit_pass() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_Pass", false]], "visit_setcomp() (pyflyby._autoimp._missingimportfinder method)": [[1, "pyflyby._autoimp._MissingImportFinder.visit_SetComp", false]], "wait_for_debugger_to_attach() (in module pyflyby._dbg)": [[4, "pyflyby._dbg.wait_for_debugger_to_attach", false]], "which() (in module pyflyby._file)": [[5, "pyflyby._file.which", false]], "with_imports() (pyflyby._importclns.importset method)": [[9, "pyflyby._importclns.ImportSet.with_imports", false]], "with_new_scope() (pyflyby._autoimp.scopestack method)": [[1, "pyflyby._autoimp.ScopeStack.with_new_scope", false]], "without_imports() (pyflyby._importclns.importmap method)": [[9, "pyflyby._importclns.ImportMap.without_imports", false]], "without_imports() (pyflyby._importclns.importset method)": [[9, "pyflyby._importclns.ImportSet.without_imports", false]], "wrap_paren (pyflyby._format.formatparams attribute)": [[7, "pyflyby._format.FormatParams.wrap_paren", false]], "wrappedattributeerror": [[19, "pyflyby._util.WrappedAttributeError", false]], "write_file() (in module pyflyby._file)": [[5, "pyflyby._file.write_file", false]]}, "objects": {"pyflyby": [[1, 0, 0, "-", "_autoimp"], [2, 0, 0, "-", "_cmdline"], [3, 0, 0, "-", "_comms"], [4, 0, 0, "-", "_dbg"], [5, 0, 0, "-", "_file"], [6, 0, 0, "-", "_flags"], [7, 0, 0, "-", "_format"], [8, 0, 0, "-", "_idents"], [9, 0, 0, "-", "_importclns"], [10, 0, 0, "-", "_importdb"], [11, 0, 0, "-", "_imports2s"], [12, 0, 0, "-", "_importstmt"], [13, 0, 0, "-", "_interactive"], [14, 0, 0, "-", "_livepatch"], [15, 0, 0, "-", "_log"], [16, 0, 0, "-", "_modules"], [17, 0, 0, "-", "_parse"], [18, 0, 0, "-", "_py"], [19, 0, 0, "-", "_util"]], "pyflyby._autoimp": [[1, 1, 1, "", "LoadSymbolError"], [1, 2, 1, "", "ScopeStack"], [1, 2, 1, "", "_ClassScope"], [1, 5, 1, "", "_IMPORT_FAILED"], [1, 2, 1, "", "_MissingImportFinder"], [1, 2, 1, "", "_UseChecker"], [1, 6, 1, "", "_find_earliest_backjump_label"], [1, 6, 1, "", "_find_loads_without_stores_in_code"], [1, 6, 1, "", "_find_missing_imports_in_ast"], [1, 6, 1, "", "_find_missing_imports_in_code"], [1, 6, 1, "", "_try_import"], [1, 6, 1, "", "auto_import_symbol"], [1, 6, 1, "", "clear_failed_imports_cache"], [1, 6, 1, "", "get_known_import"], [1, 6, 1, "", "load_symbol"], [1, 6, 1, "", "scan_for_import_issues"], [1, 6, 1, "", "symbol_needs_import"], [1, 6, 1, "", "take_arg"]], "pyflyby._autoimp.ScopeStack": [[1, 3, 1, "", "_abc_impl"], [1, 3, 1, "", "_cached_has_star_import"], [1, 4, 1, "", "clone_top"], [1, 4, 1, "", "has_star_import"], [1, 4, 1, "", "merged_to_two"], [1, 4, 1, "", "with_new_scope"]], "pyflyby._autoimp._MissingImportFinder": [[1, 4, 1, "", "_NewScopeCtx"], [1, 4, 1, "", "_UpScopeCtx"], [1, 4, 1, "", "_check_load"], [1, 3, 1, "", "_deferred_load_checks"], [1, 4, 1, "", "_finish_deferred_load_checks"], [1, 4, 1, "", "_get_scope_info"], [1, 3, 1, "", "_lineno"], [1, 4, 1, "", "_remove_from_missing_imports"], [1, 4, 1, "", "_scan_node"], [1, 4, 1, "", "_scan_unused_imports"], [1, 4, 1, "", "_visit_Load"], [1, 4, 1, "", "_visit_Load_defered"], [1, 4, 1, "", "_visit_Load_defered_global"], [1, 4, 1, "", "_visit_Load_immediate"], [1, 4, 1, "", "_visit_Store"], [1, 4, 1, "", "_visit_StoreImport"], [1, 4, 1, "", "_visit__all__"], [1, 4, 1, "", "_visit_fullname"], [1, 4, 1, "", "_visit_typecomment"], [1, 4, 1, "", "find_missing_imports"], [1, 4, 1, "", "generic_visit"], [1, 3, 1, "", "missing_imports"], [1, 3, 1, "", "parse_docstrings"], [1, 4, 1, "", "scan_for_import_issues"], [1, 3, 1, "", "scopestack"], [1, 3, 1, "", "unused_imports"], [1, 4, 1, "", "visit"], [1, 4, 1, "", "visit_Assign"], [1, 4, 1, "", "visit_AsyncFunctionDef"], [1, 4, 1, "", "visit_Attribute"], [1, 4, 1, "", "visit_Call"], [1, 4, 1, "", "visit_ClassDef"], [1, 4, 1, "", "visit_Constant"], [1, 4, 1, "", "visit_Delete"], [1, 4, 1, "", "visit_Dict"], [1, 4, 1, "", "visit_DictComp"], [1, 4, 1, "", "visit_ExceptHandler"], [1, 4, 1, "", "visit_Expr"], [1, 4, 1, "", "visit_FunctionDef"], [1, 4, 1, "", "visit_GeneratorExp"], [1, 4, 1, "", "visit_ImportFrom"], [1, 4, 1, "", "visit_Lambda"], [1, 4, 1, "", "visit_ListComp"], [1, 4, 1, "", "visit_Match"], [1, 4, 1, "", "visit_MatchAs"], [1, 4, 1, "", "visit_MatchMapping"], [1, 4, 1, "", "visit_Module"], [1, 4, 1, "", "visit_Name"], [1, 4, 1, "", "visit_Pass"], [1, 4, 1, "", "visit_SetComp"], [1, 4, 1, "", "visit_alias"], [1, 4, 1, "", "visit_arg"], [1, 4, 1, "", "visit_arguments"], [1, 4, 1, "", "visit_comprehension"], [1, 4, 1, "", "visit_match_case"]], "pyflyby._autoimp._UseChecker": [[1, 3, 1, "", "lineno"], [1, 3, 1, "", "name"], [1, 3, 1, "", "source"], [1, 3, 1, "", "used"]], "pyflyby._cmdline": [[2, 1, 1, "", "AbortActions"], [2, 1, 1, "", "Exit1"], [2, 2, 1, "", "Modifier"], [2, 6, 1, "", "_default_on_error"], [2, 6, 1, "", "_sigpipe_handler"], [2, 6, 1, "", "action_exit1"], [2, 6, 1, "", "action_external_command"], [2, 6, 1, "", "action_ifchanged"], [2, 6, 1, "", "action_print"], [2, 6, 1, "", "action_query"], [2, 6, 1, "", "action_replace"], [2, 6, 1, "", "filename_args"], [2, 6, 1, "", "hfmt"], [2, 6, 1, "", "maindoc"], [2, 6, 1, "", "parse_args"], [2, 6, 1, "", "print_version_and_exit"], [2, 6, 1, "", "process_actions"], [2, 6, 1, "", "symlink_callback"], [2, 6, 1, "", "symlink_error"], [2, 6, 1, "", "symlink_follow"], [2, 6, 1, "", "symlink_replace"], [2, 6, 1, "", "symlink_skip"], [2, 6, 1, "", "syntax"]], "pyflyby._cmdline.Modifier": [[2, 4, 1, "", "_tempfile"], [2, 7, 1, "", "input_content"], [2, 7, 1, "", "input_content_filename"], [2, 7, 1, "", "output_content"], [2, 7, 1, "", "output_content_filename"]], "pyflyby._comms": [[3, 6, 1, "", "_reformat_helper"], [3, 6, 1, "", "_register_target"], [3, 6, 1, "", "collect_code_with_imports_on_top"], [3, 6, 1, "", "comm_close_handler"], [3, 6, 1, "", "comm_open_handler"], [3, 6, 1, "", "extract_import_statements"], [3, 6, 1, "", "in_jupyter"], [3, 6, 1, "", "initialize_comms"], [3, 6, 1, "", "remove_comms"], [3, 6, 1, "", "run_tidy_imports"], [3, 6, 1, "", "send_comm_message"]], "pyflyby._dbg": [[4, 1, 1, "", "DebuggerAttachTimeoutError"], [4, 2, 1, "", "Pty"], [4, 6, 1, "", "_DebuggerCtx"], [4, 6, 1, "", "_DisplayHookCtx"], [4, 6, 1, "", "_ExceptHookCtx"], [4, 6, 1, "", "_FdCtx"], [4, 1, 1, "", "_NoTtyError"], [4, 6, 1, "", "_StdioCtx"], [4, 6, 1, "", "_abbrev_filename"], [4, 6, 1, "", "_debug_code"], [4, 6, 1, "", "_debug_exception"], [4, 6, 1, "", "_dev_null"], [4, 6, 1, "", "_dev_tty_fd"], [4, 6, 1, "", "_escape_for_gdb"], [4, 6, 1, "", "_find_py_commandline"], [4, 6, 1, "", "_get_caller_frame"], [4, 6, 1, "", "_override_excepthook"], [4, 6, 1, "", "_prompt_continue_waiting_for_debugger"], [4, 6, 1, "", "_remote_print_stack_to_file"], [4, 6, 1, "", "_reset_excepthook"], [4, 6, 1, "", "_send_email_with_attach_instructions"], [4, 6, 1, "", "_signal_handler_debugger"], [4, 6, 1, "", "_sigterm_handler"], [4, 6, 1, "", "_sleep_until_debugger_attaches"], [4, 6, 1, "", "enable_sigterm_handler"], [4, 6, 1, "", "get_executable"], [4, 6, 1, "", "inject"], [4, 6, 1, "", "kill_process"], [4, 6, 1, "", "process_exists"], [4, 6, 1, "", "setraw_but_sigint"], [4, 6, 1, "", "syscall_marker"], [4, 6, 1, "", "tty_is_usable"], [4, 6, 1, "", "wait_for_debugger_to_attach"]], "pyflyby._dbg.Pty": [[4, 4, 1, "", "communicate"]], "pyflyby._file": [[5, 2, 1, "", "FilePos"], [5, 2, 1, "", "FileText"], [5, 1, 1, "", "UnsafeFilenameError"], [5, 6, 1, "", "_get_PATH"], [5, 6, 1, "", "atomic_write_file"], [5, 6, 1, "", "expand_py_files_from_args"], [5, 6, 1, "", "read_file"], [5, 6, 1, "", "which"], [5, 6, 1, "", "write_file"]], "pyflyby._file.FilePos": [[5, 3, 1, "", "_ONE_ONE"], [5, 7, 1, "", "_data"], [5, 4, 1, "", "_from_lc"], [5, 4, 1, "", "_intint"], [5, 3, 1, "", "colno"], [5, 3, 1, "", "lineno"]], "pyflyby._file.FileText": [[5, 4, 1, "", "_colno_to_index"], [5, 4, 1, "", "_from_lines"], [5, 4, 1, "", "_lineno_to_index"], [5, 3, 1, "", "_lines"], [5, 4, 1, "", "alter"], [5, 4, 1, "", "concatenate"], [5, 7, 1, "", "endpos"], [5, 3, 1, "", "filename"], [5, 4, 1, "", "from_filename"], [5, 7, 1, "", "joined"], [5, 7, 1, "", "lines"], [5, 3, 1, "", "startpos"]], "pyflyby._flags": [[6, 6, 1, "", "CompilerFlags"]], "pyflyby._format": [[7, 2, 1, "", "FormatParams"], [7, 6, 1, "", "fill"], [7, 6, 1, "", "pyfill"]], "pyflyby._format.FormatParams": [[7, 3, 1, "", "_max_line_lenght_default"], [7, 3, 1, "", "hanging_indent"], [7, 3, 1, "", "indent"], [7, 3, 1, "", "max_line_length"], [7, 3, 1, "", "use_black"], [7, 3, 1, "", "wrap_paren"]], "pyflyby._idents": [[8, 1, 1, "", "BadDottedIdentifierError"], [8, 2, 1, "", "DottedIdentifier"], [8, 6, 1, "", "brace_identifiers"], [8, 6, 1, "", "dotted_prefixes"], [8, 6, 1, "", "is_identifier"]], "pyflyby._idents.DottedIdentifier": [[8, 4, 1, "", "_from_name"], [8, 3, 1, "", "name"], [8, 7, 1, "", "parent"], [8, 3, 1, "", "parts"], [8, 7, 1, "", "prefixes"], [8, 3, 1, "", "scope_info"], [8, 4, 1, "", "startswith"]], "pyflyby._importclns": [[9, 1, 1, "", "ConflictingImportsError"], [9, 2, 1, "", "ImportMap"], [9, 2, 1, "", "ImportSet"], [9, 1, 1, "", "NoSuchImportError"]], "pyflyby._importclns.ImportMap": [[9, 3, 1, "", "_EMPTY"], [9, 3, 1, "", "_data"], [9, 4, 1, "", "_from_map"], [9, 4, 1, "", "_merge"], [9, 4, 1, "", "items"], [9, 4, 1, "", "iteritems"], [9, 4, 1, "", "iterkeys"], [9, 4, 1, "", "keys"], [9, 4, 1, "", "values"], [9, 4, 1, "", "without_imports"]], "pyflyby._importclns.ImportSet": [[9, 3, 1, "", "_EMPTY"], [9, 7, 1, "", "_by_module_name"], [9, 4, 1, "", "_from_args"], [9, 4, 1, "", "_from_imports"], [9, 3, 1, "", "_importset"], [9, 7, 1, "", "by_import_as"], [9, 7, 1, "", "conflicting_imports"], [9, 7, 1, "", "flags"], [9, 4, 1, "", "get_statements"], [9, 7, 1, "", "imports"], [9, 7, 1, "", "member_names"], [9, 4, 1, "", "pretty_print"], [9, 7, 1, "", "statements"], [9, 4, 1, "", "with_imports"], [9, 4, 1, "", "without_imports"]], "pyflyby._importdb": [[10, 6, 1, "", "_ancestors_on_same_partition"], [10, 6, 1, "", "_expand_tripledots"], [10, 6, 1, "", "_find_etc_dirs"], [10, 6, 1, "", "_get_env_var"], [10, 6, 1, "", "_get_python_path"], [10, 6, 1, "", "_get_st_dev"]], "pyflyby._imports2s": [[11, 1, 1, "", "ImportAlreadyExistsError"], [11, 6, 1, "", "ImportPathForRelativeImportsCtx"], [11, 1, 1, "", "LineNumberAmbiguousError"], [11, 1, 1, "", "LineNumberNotFoundError"], [11, 1, 1, "", "NoImportBlockError"], [11, 2, 1, "", "SourceToSourceFileImportsTransformation"], [11, 2, 1, "", "SourceToSourceImportBlockTransformation"], [11, 2, 1, "", "SourceToSourceTransformation"], [11, 2, 1, "", "SourceToSourceTransformationBase"], [11, 6, 1, "", "fix_unused_and_missing_imports"]], "pyflyby._imports2s.SourceToSourceFileImportsTransformation": [[11, 4, 1, "", "add_import"], [11, 4, 1, "", "find_import_block_by_lineno"], [11, 4, 1, "", "insert_new_blocks_after_comments"], [11, 4, 1, "", "insert_new_import_block"], [11, 4, 1, "", "preprocess"], [11, 4, 1, "", "pretty_print"], [11, 4, 1, "", "remove_import"], [11, 4, 1, "", "select_import_block_by_closest_prefix_match"]], "pyflyby._imports2s.SourceToSourceImportBlockTransformation": [[11, 4, 1, "", "preprocess"], [11, 4, 1, "", "pretty_print"]], "pyflyby._imports2s.SourceToSourceTransformation": [[11, 3, 1, "", "_output"], [11, 4, 1, "", "preprocess"], [11, 4, 1, "", "pretty_print"]], "pyflyby._imports2s.SourceToSourceTransformationBase": [[11, 4, 1, "", "_from_source_code"], [11, 3, 1, "", "input"], [11, 4, 1, "", "output"], [11, 4, 1, "", "preprocess"], [11, 4, 1, "", "pretty_print"]], "pyflyby._importstmt": [[12, 2, 1, "", "ImportFormatParams"], [12, 2, 1, "", "ImportSplit"], [12, 6, 1, "", "_validate_alias"], [12, 6, 1, "", "read_black_config"]], "pyflyby._importstmt.ImportFormatParams": [[12, 3, 1, "", "align_future"], [12, 3, 1, "", "align_imports"], [12, 3, 1, "", "from_spaces"], [12, 3, 1, "", "separate_from_imports"]], "pyflyby._importstmt.ImportSplit": [[12, 4, 1, "", "_asdict"], [12, 3, 1, "", "_field_defaults"], [12, 3, 1, "", "_fields"], [12, 4, 1, "", "_make"], [12, 4, 1, "", "_replace"], [12, 3, 1, "", "import_as"], [12, 3, 1, "", "member_name"], [12, 3, 1, "", "module_name"]], "pyflyby._interactive": [[13, 2, 1, "", "AutoImporter"], [13, 6, 1, "", "InterceptPrintsDuringPromptCtx"], [13, 1, 1, "", "NoActiveIPythonAppError"], [13, 1, 1, "", "NoIPythonPackageError"], [13, 6, 1, "", "UpdateIPythonStdioCtx"], [13, 2, 1, "", "_DummyIPythonEmbeddedApp"], [13, 2, 1, "", "_EnableState"], [13, 2, 1, "", "_IPython010TerminalApplication"], [13, 6, 1, "", "_app_is_initialized"], [13, 6, 1, "", "_auto_import_in_pdb_frame"], [13, 6, 1, "", "_enable_pdb_hooks"], [13, 6, 1, "", "_enable_terminal_pdb_hooks"], [13, 6, 1, "", "_generate_enabler_code"], [13, 6, 1, "", "_get_IPdb_class"], [13, 6, 1, "", "_get_TerminalPdb_class"], [13, 6, 1, "", "_get_ipython_app"], [13, 6, 1, "", "_get_ipython_color_scheme"], [13, 6, 1, "", "_get_or_create_ipython_kernel_app"], [13, 6, 1, "", "_get_or_create_ipython_terminal_app"], [13, 6, 1, "", "_get_pdb_if_is_in_pdb"], [13, 6, 1, "", "_initialize_and_start_app_with_autoimporter"], [13, 6, 1, "", "_install_in_ipython_config_file_010"], [13, 6, 1, "", "_install_in_ipython_config_file_011"], [13, 6, 1, "", "_install_in_ipython_config_file_012"], [13, 6, 1, "", "_install_in_ipython_config_file_40"], [13, 6, 1, "", "_ipython_in_multiline"], [13, 6, 1, "", "_ipython_namespaces"], [13, 6, 1, "", "_list_members_for_completion"], [13, 6, 1, "", "_python_can_import_pyflyby"], [13, 6, 1, "", "_skip_frames"], [13, 6, 1, "", "complete_symbol"], [13, 6, 1, "", "get_global_namespaces"], [13, 6, 1, "", "get_ipython_terminal_app_with_autoimporter"], [13, 6, 1, "", "new_IPdb_instance"], [13, 6, 1, "", "print_verbose_tb"], [13, 6, 1, "", "run_ipython_line_magic"], [13, 6, 1, "", "start_ipython_kernel_with_autoimporter"], [13, 6, 1, "", "start_ipython_with_autoimporter"]], "pyflyby._interactive.AutoImporter": [[13, 4, 1, "", "_advise"], [13, 3, 1, "", "_ast_transformer"], [13, 3, 1, "", "_autoimported_this_cell"], [13, 4, 1, "", "_construct"], [13, 4, 1, "", "_continue_enable"], [13, 3, 1, "", "_disablers"], [13, 4, 1, "", "_enable_ast_hook"], [13, 4, 1, "", "_enable_completer_hooks"], [13, 4, 1, "", "_enable_completion_hook"], [13, 4, 1, "", "_enable_debugger_hook"], [13, 4, 1, "", "_enable_initializer_hooks"], [13, 4, 1, "", "_enable_internal"], [13, 4, 1, "", "_enable_ipython_shell_bugfixes"], [13, 4, 1, "", "_enable_kernel_manager_hook"], [13, 4, 1, "", "_enable_ofind_hook"], [13, 4, 1, "", "_enable_prun_hook"], [13, 4, 1, "", "_enable_reset_hook"], [13, 4, 1, "", "_enable_run_hook"], [13, 4, 1, "", "_enable_shell_hooks"], [13, 4, 1, "", "_enable_start_kernel_hook"], [13, 4, 1, "", "_enable_time_hook"], [13, 4, 1, "", "_enable_timeit_hook"], [13, 3, 1, "", "_errored"], [13, 4, 1, "", "_from_app"], [13, 3, 1, "", "_ip"], [13, 4, 1, "", "_safe_call"], [13, 3, 1, "", "_state"], [13, 3, 1, "", "app"], [13, 4, 1, "", "auto_import"], [13, 4, 1, "", "compile_with_autoimport"], [13, 4, 1, "", "complete_symbol"], [13, 3, 1, "", "db"], [13, 4, 1, "", "disable"], [13, 4, 1, "", "enable"], [13, 4, 1, "", "reset_state_new_cell"]], "pyflyby._interactive._EnableState": [[13, 3, 1, "", "DISABLED"], [13, 3, 1, "", "DISABLING"], [13, 3, 1, "", "ENABLED"], [13, 3, 1, "", "ENABLING"]], "pyflyby._interactive._IPython010TerminalApplication": [[13, 3, 1, "", "_instance"], [13, 4, 1, "", "init_shell"], [13, 4, 1, "", "initialize"], [13, 4, 1, "", "instance"], [13, 4, 1, "", "start"]], "pyflyby._livepatch": [[14, 1, 1, "", "UnknownModuleError"], [14, 6, 1, "", "_format_age"], [14, 6, 1, "", "_get_definition_module"], [14, 6, 1, "", "_get_module_py_file"], [14, 6, 1, "", "_interpret_module"], [14, 6, 1, "", "_livepatch__class"], [14, 6, 1, "", "_livepatch__dict"], [14, 6, 1, "", "_livepatch__function"], [14, 6, 1, "", "_livepatch__method"], [14, 6, 1, "", "_livepatch__module"], [14, 6, 1, "", "_livepatch__object"], [14, 6, 1, "", "_livepatch__setattr"], [14, 6, 1, "", "_xreload_module"]], "pyflyby._log": [[15, 2, 1, "", "PyflybyLogger"], [15, 6, 1, "", "_PromptToolkitStdoutProxyRawCtx"], [15, 2, 1, "", "_PyflybyHandler"], [15, 6, 1, "", "_is_interactive"], [15, 6, 1, "", "_is_ipython"]], "pyflyby._log.PyflybyLogger": [[15, 4, 1, "", "HookCtx"], [15, 3, 1, "", "_LEVELS"], [15, 7, 1, "", "debug_enabled"], [15, 7, 1, "", "info_enabled"], [15, 4, 1, "", "set_level"]], "pyflyby._log._PyflybyHandler": [[15, 4, 1, "", "HookCtx"], [15, 3, 1, "", "_interactive_prefix"], [15, 3, 1, "", "_logged_anything_during_context"], [15, 3, 1, "", "_noninteractive_prefix"], [15, 3, 1, "", "_pre_log_function"], [15, 4, 1, "", "emit"]], "pyflyby._modules": [[16, 1, 1, "", "ErrorDuringImportError"], [16, 2, 1, "", "ModuleHandle"], [16, 6, 1, "", "_my_iter_modules"], [16, 6, 1, "", "import_module"], [16, 6, 1, "", "pyc_to_py"]], "pyflyby._modules.ModuleHandle": [[16, 3, 1, "", "_cls_cache"], [16, 4, 1, "", "_from_filename"], [16, 4, 1, "", "_from_module"], [16, 4, 1, "", "_from_modulename"], [16, 4, 1, "", "_member_from_node"], [16, 7, 1, "", "ancestors"], [16, 7, 1, "", "block"], [16, 4, 1, "", "containing"], [16, 7, 1, "", "exists"], [16, 7, 1, "", "exports"], [16, 7, 1, "", "filename"], [16, 4, 1, "", "list"], [16, 7, 1, "", "module"], [16, 3, 1, "", "name"], [16, 7, 1, "", "parent"], [16, 7, 1, "", "submodules"], [16, 7, 1, "", "text"]], "pyflyby._parse": [[17, 2, 1, "", "AnnotatedAst"], [17, 2, 1, "", "AnnotatedModule"], [17, 2, 1, "", "AstNodeContext"], [17, 2, 1, "", "IgnoreOptionsDocTestParser"], [17, 2, 1, "", "_DummyAst_Node"], [17, 6, 1, "", "_annotate_ast_context"], [17, 6, 1, "", "_annotate_ast_nodes"], [17, 6, 1, "", "_annotate_ast_startpos"], [17, 6, 1, "", "_ast_node_is_in_docstring_position"], [17, 6, 1, "", "_ast_str_literal_value"], [17, 6, 1, "", "_flags_to_try"], [17, 6, 1, "", "_flatten_ast_nodes"], [17, 6, 1, "", "_is_ast_bytes"], [17, 6, 1, "", "_is_ast_str"], [17, 6, 1, "", "_is_ast_str_or_byte"], [17, 6, 1, "", "_is_comment_or_blank"], [17, 6, 1, "", "_iter_child_nodes_in_order"], [17, 6, 1, "", "_iter_child_nodes_in_order_internal_1"], [17, 6, 1, "", "_parse_ast_nodes"], [17, 6, 1, "", "_split_code_lines"], [17, 6, 1, "", "_test_parse_string_literal"], [17, 6, 1, "", "_walk_ast_nodes_in_order"], [17, 6, 1, "", "infer_compile_mode"]], "pyflyby._parse.AnnotatedAst": [[17, 3, 1, "", "col_offset"], [17, 3, 1, "", "endpos"], [17, 3, 1, "", "flags"], [17, 3, 1, "", "lieneno"], [17, 3, 1, "", "s"], [17, 3, 1, "", "source_flags"], [17, 3, 1, "", "startpos"], [17, 3, 1, "", "text"], [17, 3, 1, "", "value"]], "pyflyby._parse.AnnotatedModule": [[17, 3, 1, "", "source_flags"]], "pyflyby._parse.AstNodeContext": [[17, 4, 1, "", "_asdict"], [17, 3, 1, "", "_field_defaults"], [17, 3, 1, "", "_fields"], [17, 4, 1, "", "_make"], [17, 4, 1, "", "_replace"], [17, 3, 1, "", "field"], [17, 3, 1, "", "index"], [17, 3, 1, "", "parent"]], "pyflyby._parse.IgnoreOptionsDocTestParser": [[17, 4, 1, "", "_find_options"]], "pyflyby._py": [[18, 2, 1, "", "LoggedList"], [18, 1, 1, "", "NotAFunctionError"], [18, 1, 1, "", "ParseError"], [18, 6, 1, "", "SysArgvCtx"], [18, 1, 1, "", "UnimportableNameError"], [18, 2, 1, "", "UserExpr"], [18, 2, 1, "", "_Namespace"], [18, 1, 1, "", "_ParseInterruptedWantHelp"], [18, 1, 1, "", "_ParseInterruptedWantSource"], [18, 2, 1, "", "_PyMain"], [18, 6, 1, "", "_as_filename_if_seems_like_filename"], [18, 6, 1, "", "_build_function_usage_string"], [18, 6, 1, "", "_format_call"], [18, 6, 1, "", "_format_call_spec"], [18, 6, 1, "", "_get_argspec"], [18, 6, 1, "", "_get_help"], [18, 6, 1, "", "_handle_user_exception"], [18, 6, 1, "", "_has_python_shebang"], [18, 6, 1, "", "_interpret_arg_mode"], [18, 6, 1, "", "_interpret_output_mode"], [18, 6, 1, "", "_parse_auto_apply_args"], [18, 6, 1, "", "_requires_parens_as_function"], [18, 6, 1, "", "auto_apply"], [18, 6, 1, "", "print_result"], [18, 6, 1, "", "py_main"]], "pyflyby._py.LoggedList": [[18, 3, 1, "", "_ACCESSED"], [18, 4, 1, "", "append"], [18, 4, 1, "", "count"], [18, 4, 1, "", "extend"], [18, 4, 1, "", "index"], [18, 4, 1, "", "insert"], [18, 4, 1, "", "pop"], [18, 4, 1, "", "remove"], [18, 4, 1, "", "reverse"], [18, 4, 1, "", "sort"], [18, 7, 1, "", "unaccessed"]], "pyflyby._py.UserExpr": [[18, 4, 1, "", "_infer_and_evaluate"]], "pyflyby._py._Namespace": [[18, 4, 1, "", "auto_eval"], [18, 4, 1, "", "auto_import"]], "pyflyby._py._PyMain": [[18, 4, 1, "", "_enable_debug_tools"], [18, 4, 1, "", "_parse_global_opts"], [18, 4, 1, "", "_pre_exit"], [18, 4, 1, "", "_pre_exit_interactive_shell"], [18, 4, 1, "", "_pre_exit_matplotlib_show"], [18, 4, 1, "", "_run_action"], [18, 4, 1, "", "_seems_like_runnable_module"], [18, 4, 1, "", "apply"], [18, 4, 1, "", "create_ipython_app"], [18, 4, 1, "", "eval"], [18, 4, 1, "", "exec_stdin"], [18, 4, 1, "", "execfile"], [18, 4, 1, "", "heuristic_cmd"], [18, 4, 1, "", "heuristic_run_module"], [18, 4, 1, "", "print_help"], [18, 4, 1, "", "print_version"], [18, 4, 1, "", "run"], [18, 4, 1, "", "run_module"], [18, 4, 1, "", "start_ipython"]], "pyflyby._util": [[19, 6, 1, "", "AdviceCtx"], [19, 2, 1, "", "Aspect"], [19, 6, 1, "", "CwdCtx"], [19, 6, 1, "", "EnvVarCtx"], [19, 6, 1, "", "ExcludeImplicitCwdFromPathCtx"], [19, 2, 1, "", "FunctionWithGlobals"], [19, 6, 1, "", "ImportPathCtx"], [19, 6, 1, "", "NullCtx"], [19, 1, 1, "", "WrappedAttributeError"], [19, 2, 1, "", "_WritableDictProxy"], [19, 6, 1, "", "advise"], [19, 6, 1, "", "cmp"], [19, 6, 1, "", "indent"], [19, 6, 1, "", "longest_common_prefix"], [19, 6, 1, "", "nested"], [19, 6, 1, "", "partition"], [19, 6, 1, "", "prefixes"], [19, 6, 1, "", "stable_unique"]], "pyflyby._util.Aspect": [[19, 3, 1, "", "_wrapper"], [19, 4, 1, "", "advise"], [19, 4, 1, "", "unadvise"]], "pyflyby._util._WritableDictProxy": [[19, 4, 1, "", "get"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "exception", "Python exception"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "data", "Python data"], "6": ["py", "function", "Python function"], "7": ["py", "property", "Python property"]}, "objtypes": {"0": "py:module", "1": "py:exception", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:data", "6": "py:function", "7": "py:property"}, "terms": {"": [1, 2, 5, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20], "0": [4, 9, 12, 13, 15, 17, 18, 19, 20], "007": 18, "007787": 14, "0282": 20, "03d": 18, "0603": 20, "0m": 15, "0x10000": 6, "0x18000": 6, "0x8000": 6, "1": [1, 4, 5, 6, 12, 13, 17, 18, 19, 20], "10": [13, 15, 20], "100": 19, "1000": 19, "100000": 20, "106": 18, "11": [13, 20], "1100": 19, "12": [13, 17, 18, 20], "12321233221": 19, "13": [13, 18, 20], "1353": 20, "13951446": 20, "14": 7, "15": [7, 18], "150532462080j": 18, "16": 18, "18": 18, "2": [1, 4, 7, 12, 13, 17, 18, 19, 20], "20": [1, 15], "2007": 14, "2014": 18, "2231": 20, "24084866": 18, "25": [7, 18], "256": 20, "28": 1, "3": [1, 12, 13, 17, 18, 19, 20], "30": [15, 18, 20], "3347": 20, "33m": 15, "3679": 20, "38": 1, "38497631": 20, "4": [7, 13, 18, 19, 20], "40": 15, "42": [14, 19, 20], "4653": 20, "5": [18, 19, 20], "51": 20, "5j": 18, "6": [18, 19], "6065": 20, "63": 20, "65602966976": 18, "660470": 18, "7": [18, 19, 20], "75": 18, "7594007818257693": 20, "79": 7, "7j": 18, "8": 20, "80": 7, "8166": 20, "8371": 20, "86400": 4, "9": [18, 20], "9223372036854775807": 20, "A": [1, 4, 5, 9, 14, 16, 18, 19], "And": 1, "As": 1, "At": [18, 19], "By": [8, 14, 18, 20], "For": [1, 10, 14, 17, 20], "If": [1, 4, 5, 7, 8, 9, 12, 13, 14, 17, 18, 20], "In": [4, 11, 14, 20], "It": [1, 11, 13, 14], "NOT": 5, "ORed": 9, "On": 14, "That": 16, "The": [1, 3, 4, 5, 11, 12, 13, 14, 16, 17, 18, 19, 20], "Then": [1, 4, 10, 20], "There": 7, "These": [1, 5, 9, 14, 20], "To": [19, 20], "_": 20, "__": 4, "__all__": 16, "__call__": 19, "__canonical_imports__": 20, "__code__": 1, "__dict__": [14, 19], "__forget_imports__": 20, "__future__": [6, 9, 12, 20], "__getattr__": 19, "__init__": [14, 18, 19], "__interactive_display__": [6, 18], "__livepatch__": 14, "__mandatory_imports__": 20, "__module__": 14, "__name__": 1, "__new__": 9, "__original__": 19, "_abbrev_filenam": [0, 4, 20], "_abc": 1, "_abc_data": 1, "_abc_impl": [1, 20], "_access": [18, 20], "_advis": [13, 20], "_ancestors_on_same_partit": [0, 10, 20], "_annotate_ast_context": [0, 17, 20], "_annotate_ast_nod": [0, 17, 20], "_annotate_ast_startpo": [0, 17, 20], "_app_is_initi": [0, 13, 20], "_as_filename_if_seems_like_filenam": [0, 18, 20], "_asdict": [12, 17, 20], "_ast_node_is_in_docstring_posit": [0, 17, 20], "_ast_str_literal_valu": [0, 17, 20], "_ast_transform": [13, 20], "_auto_import_in_pdb_fram": [0, 13, 20], "_autoimp": [0, 20], "_autoimported_this_cel": [13, 20], "_backward_": 1, "_build_function_usage_str": [0, 18, 20], "_by_module_nam": [9, 20], "_cached_has_star_import": [1, 20], "_check_load": [1, 20], "_class_delai": 1, "_classscop": [0, 1, 20], "_cls_cach": [16, 20], "_cmdline": [0, 20], "_colno_to_index": [5, 20], "_comm": [0, 20], "_construct": [13, 20], "_continue_en": [13, 20], "_data": [5, 9, 20], "_dbg": [0, 20], "_debug_cod": [0, 4, 20], "_debug_except": [0, 4, 20], "_debuggerctx": [0, 4, 20], "_default_on_error": [0, 2, 20], "_deferred_load_check": [1, 20], "_dev_nul": [0, 4, 20], "_dev_tty_fd": [0, 4, 20], "_disabl": [13, 20], "_displayhookctx": [0, 4, 20], "_dummyast_nod": [0, 17, 20], "_dummyipythonembeddedapp": [0, 13, 20], "_empti": [9, 20], "_enable_ast_hook": [13, 20], "_enable_completer_hook": [13, 20], "_enable_completion_hook": [13, 20], "_enable_debug_tool": [18, 20], "_enable_debugger_hook": [13, 20], "_enable_initializer_hook": [13, 20], "_enable_intern": [13, 20], "_enable_ipython_shell_bugfix": [13, 20], "_enable_kernel_manager_hook": [13, 20], "_enable_ofind_hook": [13, 20], "_enable_pdb_hook": [0, 13, 20], "_enable_prun_hook": [13, 20], "_enable_reset_hook": [13, 20], "_enable_run_hook": [13, 20], "_enable_shell_hook": [13, 20], "_enable_start_kernel_hook": [13, 20], "_enable_terminal_pdb_hook": [0, 13, 20], "_enable_time_hook": [13, 20], "_enable_timeit_hook": [13, 20], "_enablest": [0, 13, 20], "_error": [13, 20], "_escape_for_gdb": [0, 4, 20], "_excepthookctx": [0, 4, 20], "_expand_tripledot": [0, 10, 20], "_fdctx": [0, 4, 20], "_field": [1, 12, 17, 20], "_field_default": [12, 17, 20], "_file": [0, 20], "_find_earliest_backjump_label": [0, 1, 20], "_find_etc_dir": [0, 10, 20], "_find_loads_without_stores_in_cod": [0, 1, 20], "_find_missing_imports_in_ast": [0, 1, 20], "_find_missing_imports_in_cod": [0, 1, 20], "_find_opt": [17, 20], "_find_py_commandlin": [0, 4, 20], "_finish_deferred_load_check": [1, 20], "_flag": [0, 20], "_flags_to_tri": [0, 17, 20], "_flatten_ast_nod": [0, 17, 20], "_format": [0, 20], "_format_ag": [0, 14, 20], "_format_cal": [0, 18, 20], "_format_call_spec": [0, 18, 20], "_forward_": 1, "_from_app": [13, 20], "_from_arg": [9, 20], "_from_filenam": [16, 20], "_from_import": [9, 20], "_from_lc": [5, 20], "_from_lin": [5, 20], "_from_map": [9, 20], "_from_modul": [16, 20], "_from_modulenam": [16, 20], "_from_nam": [8, 20], "_from_source_cod": [11, 20], "_generate_enabler_cod": [0, 13, 20], "_get_argspec": [0, 18, 20], "_get_caller_fram": [0, 4, 20], "_get_definition_modul": [0, 14, 20], "_get_env_var": [0, 10, 20], "_get_help": [0, 18, 20], "_get_ipdb_class": [0, 13, 20], "_get_ipython_app": [0, 13, 20], "_get_ipython_color_schem": [0, 13, 20], "_get_module_py_fil": [0, 14, 20], "_get_or_create_ipython_kernel_app": [0, 13, 20], "_get_or_create_ipython_terminal_app": [0, 13, 20], "_get_path": [0, 5, 20], "_get_pdb_if_is_in_pdb": [0, 13, 20], "_get_python_path": [0, 10, 20], "_get_scope_info": [1, 20], "_get_st_dev": [0, 10, 20], "_get_terminalpdb_class": [0, 13, 20], "_getfram": 4, "_handle_user_except": [0, 18, 20], "_has_python_shebang": [0, 18, 20], "_hello": 9, "_ident": [0, 20], "_import_fail": [0, 1, 20], "_importcln": [0, 20], "_importdb": [0, 20], "_imports2": [0, 20], "_importset": [9, 20], "_importstmt": [0, 20], "_infer_and_evalu": [18, 20], "_initialize_and_start_app_with_autoimport": [0, 13, 20], "_install_in_ipython_config_file_010": [0, 13, 20], "_install_in_ipython_config_file_011": [0, 13, 20], "_install_in_ipython_config_file_012": [0, 13, 20], "_install_in_ipython_config_file_40": [0, 13, 20], "_instanc": [13, 20], "_interact": [0, 20], "_interactive_prefix": [15, 20], "_interpret_arg_mod": [0, 18, 20], "_interpret_modul": [0, 14, 20], "_interpret_output_mod": [0, 18, 20], "_intint": [5, 20], "_ip": [13, 20], "_ipython010terminalappl": [0, 13, 20], "_ipython_in_multilin": [0, 13, 20], "_ipython_namespac": [0, 13, 20], "_is_ast_byt": [0, 17, 20], "_is_ast_str": [0, 17, 20], "_is_ast_str_or_byt": [0, 17, 20], "_is_comment_or_blank": [0, 17, 20], "_is_interact": [0, 15, 20], "_is_ipython": [0, 15, 20], "_iter_child_nodes_in_ord": [0, 17, 20], "_iter_child_nodes_in_order_internal_1": [0, 17, 20], "_level": [15, 20], "_line": [5, 20], "_lineno": [1, 20], "_lineno_to_index": [5, 20], "_list_members_for_complet": [0, 13, 20], "_livepatch": [0, 20], "_livepatch__class": [0, 14, 20], "_livepatch__dict": [0, 14, 20], "_livepatch__funct": [0, 14, 20], "_livepatch__method": [0, 14, 20], "_livepatch__modul": [0, 14, 20], "_livepatch__object": [0, 14, 20], "_livepatch__setattr": [0, 14, 20], "_log": [0, 20], "_logged_anything_during_context": [15, 20], "_make": [12, 17, 20], "_max_line_lenght_default": [7, 20], "_member_from_nod": [16, 20], "_merg": [9, 20], "_missingimportfind": [0, 1, 20], "_modul": [0, 20], "_my_cach": 14, "_my_iter_modul": [0, 16, 20], "_namespac": [0, 18, 20], "_newscopectx": [1, 20], "_noninteractive_prefix": [15, 20], "_nottyerror": [0, 4, 20], "_ofind": 13, "_one_on": [5, 20], "_output": [11, 20], "_override_excepthook": [0, 4, 20], "_pars": [0, 20], "_parse_ast_nod": [0, 17, 20], "_parse_auto_apply_arg": [0, 18, 20], "_parse_global_opt": [18, 20], "_parseinterruptedwanthelp": [0, 18, 20], "_parseinterruptedwantsourc": [0, 18, 20], "_pre_exit": [18, 20], "_pre_exit_interactive_shel": [18, 20], "_pre_exit_matplotlib_show": [18, 20], "_pre_log_funct": [15, 20], "_prompt_continue_waiting_for_debugg": [0, 4, 20], "_prompttoolkitstdoutproxyrawctx": [0, 15, 20], "_py": [0, 20], "_pyflybyhandl": [0, 15, 20], "_pymain": [0, 18, 20], "_python_can_import_pyflybi": [0, 13, 20], "_reformat_help": [0, 3, 20], "_register_target": [0, 3, 20], "_remote_print_stack_to_fil": [0, 4, 20], "_remove_from_missing_import": [1, 20], "_replac": [12, 17, 20], "_requires_parens_as_funct": [0, 18, 20], "_reset_excepthook": [0, 4, 20], "_run_act": [18, 20], "_safe_cal": [13, 20], "_scan_nod": [1, 20], "_scan_unused_import": [1, 20], "_seems_like_runnable_modul": [18, 20], "_send_email_with_attach_instruct": [0, 4, 20], "_signal_handler_debugg": [0, 4, 20], "_sigpipe_handl": [0, 2, 20], "_sigterm_handl": [0, 4, 20], "_skip_fram": [0, 13, 20], "_sleep_until_debugger_attach": [0, 4, 20], "_split_code_lin": [0, 17, 20], "_state": [13, 20], "_stdioctx": [0, 4, 20], "_stdoutproxi": 15, "_tempfil": [2, 20], "_test_parse_string_liter": [0, 17, 20], "_three_": 20, "_try_import": [0, 1, 20], "_upscopectx": [1, 20], "_usecheck": [0, 1, 20], "_user_n": 13, "_util": [0, 20], "_validate_alia": [0, 12, 20], "_version": 20, "_visit__all__": [1, 20], "_visit_fullnam": [1, 20], "_visit_load": [1, 20], "_visit_load_def": [1, 20], "_visit_load_defered_glob": [1, 20], "_visit_load_immedi": [1, 20], "_visit_stor": [1, 20], "_visit_storeimport": [1, 20], "_visit_typecom": [1, 20], "_walk_ast_nodes_in_ord": [0, 17, 20], "_wrapper": [19, 20], "_writabledictproxi": [0, 19, 20], "_xreload_modul": [0, 14, 20], "aa": [1, 8, 9, 10], "aast_nod": 17, "ab": 19, "abc": 19, "abcd": 19, "abcxi": 19, "abortact": [0, 2, 20], "about": [1, 9, 20], "abov": 20, "absolute_import": 20, "access": [1, 16, 18], "accord": 16, "account": 17, "across": 14, "action": [2, 18], "action_exit1": [0, 2, 20], "action_external_command": [0, 2, 20], "action_ifchang": [0, 2, 20], "action_print": [0, 2, 20], "action_queri": [0, 2, 20], "action_replac": [0, 2, 20], "actual": [13, 18], "ad": [11, 14], "add": [1, 11, 18, 19, 20], "add_deprec": 18, "add_import": [11, 20], "add_mandatori": 11, "add_miss": [11, 20], "addit": 1, "addopt": 2, "address": 14, "addthousand": 19, "advic": [13, 19], "advicectx": [0, 19, 20], "advis": [0, 19, 20], "affect": [14, 20], "after": [1, 3, 5, 7, 12, 14, 18], "again": 20, "agreement": 20, "agvsbg8": [18, 20], "alia": [1, 12, 17, 20], "alias": [1, 12, 18], "align": 12, "align_futur": [12, 20], "align_import": [12, 20], "all": [1, 3, 7, 8, 12, 16, 17, 18, 20], "allow": [4, 8, 13, 14, 18, 20], "allow_conflict": 9, "allow_ev": 13, "along": 20, "alreadi": [1, 4, 13, 14, 20], "also": [1, 3, 4, 11, 14, 17, 18, 19, 20], "altchar": [18, 20], "alter": [5, 20], "altern": 14, "alwai": [1, 5, 12, 17, 20], "an": [1, 4, 9, 10, 11, 12, 13, 14, 16, 17, 18], "analysi": [1, 18], "ancestor": [10, 16, 20], "ani": [1, 13, 14, 15, 16, 18, 20], "annot": [1, 17], "annotatedast": [0, 17, 20], "annotatedmodul": [0, 17, 20], "anoth": [1, 14, 16], "anothermodul": 20, "anotherpackag": 20, "ansi": 15, "answer": 20, "anyth": 15, "api": 20, "app": [13, 20], "appear": 17, "append": [7, 18, 20], "appli": [18, 20], "applic": [13, 18], "appropri": [16, 18], "ar": [1, 3, 4, 5, 8, 10, 11, 13, 14, 16, 17, 18, 20], "arandom": 20, "arang": [1, 18, 20], "arbitrari": 17, "arg": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18], "arg1": 18, "arg2": 18, "arg_mod": 18, "argspec": 18, "argument": [1, 2, 5, 13, 14, 18], "argv": [13, 18], "around": [13, 18, 19], "as_integer_ratio": 18, "ascii": 18, "asdf": 1, "ask": 13, "aspect": [0, 19, 20], "assign": [1, 4, 17, 20], "associ": 9, "assum": [1, 13], "ast": [1, 13, 17], "ast_nod": 17, "astnodecontext": [0, 17, 20], "asyncfucntiondef": 17, "atomic_write_fil": [0, 5, 20], "attach": [4, 13, 17, 18], "attempt": [1, 16, 17], "attribut": [1, 13, 14, 16, 17], "attributeerror": 1, "auto": [1, 7, 13, 18], "auto_appli": [0, 18, 20], "auto_ev": [18, 20], "auto_flag": 17, "auto_import": [1, 4, 13, 18, 20], "auto_import_symbol": [0, 1, 20], "autocal": 13, "autoimp": 20, "autoimport": [0, 1, 9, 13, 18], "automat": [11, 18], "avail": [1, 13, 18, 19], "avoid": [5, 14, 18], "b": [9, 14, 16, 18, 19], "b64decod": [18, 20], "back": [19, 20], "background": 4, "backward": [1, 18], "baddottedidentifiererror": [0, 8, 20], "bar": [1, 7, 8, 10, 13, 18, 19, 20], "bar1": 20, "bar2": 20, "bare": 17, "base": [1, 11, 14], "base64": [18, 20], "baseipythonappl": 13, "basi": 20, "baz": [1, 7, 8, 18, 20], "bb": [1, 8, 9, 10], "becaus": [1, 14, 17, 20], "becom": [14, 20], "been": [5, 9, 13, 14, 17, 18], "befor": [4, 7, 11, 13, 15, 17, 18, 20], "begin": [7, 11, 17], "behav": 20, "behavior": [0, 13, 19, 20], "being": [13, 14, 17], "below": [11, 20], "best": [11, 20], "better": [1, 18], "between": 7, "bin": 20, "bitwis": 9, "black": 12, "blah": 17, "blah1": 20, "blah2": 20, "blank": 17, "block": [9, 11, 12, 16, 17, 18, 20], "bool": [1, 4, 8, 9, 12, 13, 17, 18], "boolean": 20, "both": [5, 9, 17], "bound": [14, 18], "boundari": 20, "brace": 1, "brace_identifi": [0, 8, 20], "breakpoint": 18, "broken": 20, "bug": 13, "build": 20, "built": [14, 17, 18], "builtin": [1, 18], "bunch": 5, "by_import_a": [9, 20], "byte": [1, 17], "bytecod": 1, "c": [9, 14, 16, 18, 19, 20], "cach": [1, 13, 14], "calcul": 18, "calendar": 18, "call": [1, 4, 5, 13, 14, 15, 18, 19], "callabl": [1, 5, 13, 15, 18, 19], "can": [1, 4, 8, 13, 14, 17, 18, 19, 20], "candid": [13, 17], "cannot": 20, "canonic": 9, "captur": 20, "care": 1, "case": [4, 14], "caus": [4, 15, 16, 18], "cc": [1, 8, 9, 10], "cdll": 18, "cell_arrai": 3, "certain": [4, 20], "chang": [14, 20], "charact": [5, 7], "check": [1, 5, 8, 11, 17, 20], "checkout": 20, "checksum": 20, "chen": 20, "child": [4, 17], "chisqprob": 20, "choos": 18, "chosen": 18, "cl": 19, "cla": 20, "class": [1, 2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "classdef": [1, 17], "classmethod": [5, 8, 9, 11, 12, 13, 16, 17], "classvar": [5, 9], "claus": 12, "cleanli": 17, "clear": [1, 14], "clear_failed_imports_cach": [0, 1, 20], "clguba": 20, "cli": 20, "client": [1, 3], "clobber": 1, "clone": 1, "clone_top": [1, 20], "close": 18, "closest": 4, "cmd": 18, "cmd_arg": 18, "cmp": [0, 19, 20], "co": [1, 18, 20], "co_cod": 1, "code": [1, 3, 4, 6, 13, 15, 17, 18, 20], "codeblock": [1, 11], "codetyp": 1, "col_offset": [17, 20], "collect": [1, 20], "collect_code_with_imports_on_top": [0, 3, 20], "colno": [5, 20], "colon": [10, 20], "color": 13, "column": 12, "com": [18, 20], "come": [12, 18, 20], "comm": 3, "comm_close_handl": [0, 3, 20], "comm_open": 3, "comm_open_handl": [0, 3, 20], "command": [2, 13, 18], "commandline_arg": 18, "comment": [1, 11, 17], "commit": 20, "common": [11, 19], "commonli": 16, "commun": [4, 20], "compar": 1, "compatibilti": 18, "compil": [1, 6, 13, 17], "compile_with_autoimport": [13, 20], "compiler_flag": 9, "compilerflag": [0, 6, 17, 20], "complain": [9, 18], "complet": [4, 9, 13, 18, 20], "complete_symbol": [0, 13, 20], "compon": 8, "compris": 8, "concaten": [5, 18, 20], "conda": 20, "config": 10, "configur": [12, 13], "confirm": 18, "conflict": 9, "conflicting_import": [9, 20], "conflictingimportserror": [0, 9, 20], "consid": [1, 20], "consol": 20, "constant": 17, "constraint": 11, "construct": [14, 18], "consult": 20, "contain": [3, 5, 9, 11, 13, 14, 16, 17, 18, 20], "content": [14, 18], "context": [1, 4, 11, 13, 15, 17, 18, 19], "contigu": 5, "continu": [4, 18], "contrast": 20, "contribut": 20, "contributor": 20, "control": 18, "convent": 13, "copi": [9, 14, 19], "core": 13, "correspond": [1, 17], "cosin": 18, "could": [1, 14, 16, 17], "count": [18, 20], "crazi": 17, "creat": [1, 4, 11, 13, 18, 20], "create_ipython_app": [18, 20], "ct": 20, "ctx": 1, "current": [1, 4, 13, 14, 15, 20], "custom": [0, 3, 20], "cwdctx": [0, 19, 20], "d": [9, 18, 20], "dai": 18, "dash": 20, "data": [5, 9, 18, 20], "databas": [1, 13, 20], "datafram": 20, "date": [18, 20], "db": [1, 11, 13, 20], "dd": [9, 20], "debug": [4, 15, 18], "debug_en": [15, 20], "debug_except": 18, "debug_stat": 18, "debugg": [4, 18, 20], "debuggerattachtimeouterror": [0, 4, 20], "decid": [1, 4, 18], "decim": 18, "declar": [1, 14], "decod": 18, "decor": [13, 19], "deepest": [1, 16], "def": [1, 14, 19], "default": [1, 2, 4, 8, 10, 14, 18, 19, 20], "default_path": 10, "defeat": 15, "defin": [1, 14, 16, 18, 20], "definit": [1, 20], "definitiion": 1, "delai": 4, "delimit": 10, "depend": 20, "deprec": 18, "descend": 17, "descriptor": 4, "design": 18, "desir": 14, "dev": [4, 18, 20], "df": 20, "diagnos": 20, "dict": [1, 8, 9, 12, 13, 14, 16, 17], "dictionari": [1, 14, 17], "did": 1, "differ": [4, 10, 17, 20], "difficult": 20, "direct": 17, "directli": [4, 5], "directori": [5, 10, 19, 20], "disabl": [13, 17, 20], "disassembl": 1, "displayhook": 4, "dist": 20, "divis": [9, 20], "do": [1, 2, 4, 5, 13, 14, 18, 19, 20], "do_livepatch": 14, "docstr": [1, 17, 18, 20], "document": 20, "doe": [1, 3, 8, 10, 13, 14, 17, 19], "doesn": [16, 20], "don": [1, 5, 13, 14, 18, 20], "dont_inherit": 6, "dot": [8, 10, 13, 20], "dotted_nam": 8, "dotted_prefix": [0, 8, 20], "dottedidentifi": [0, 1, 8, 16, 20], "down": 20, "download": 18, "dtype": 20, "due": 20, "dummi": 4, "duplic": [1, 19], "dure": 15, "dynam": 16, "e": [1, 4, 6, 13, 14, 16, 17, 20], "each": [1, 4, 7, 8, 9, 12, 17, 20], "earlier": [1, 11], "earliest": [1, 17], "easi": 20, "echo": [18, 20], "ed": 18, "edit": [14, 20], "edu": 14, "effect": [1, 14], "either": [4, 20], "el": 20, "element": 7, "elig": 17, "ellipsi": 13, "els": [1, 18, 19, 20], "email": [4, 16, 18], "emit": [15, 20], "empti": [1, 5, 8, 11, 18], "emul": 13, "en": [3, 19], "enabl": [13, 18, 20], "enable_sigterm_handl": [0, 4, 20], "encod": [16, 18], "end": [1, 5, 7, 15, 17, 18, 20], "endpo": [5, 17, 20], "endswith": 5, "engin": 20, "ensur": 12, "enter": [1, 4, 13, 15, 18, 19], "entri": [1, 4, 20], "enumer": [5, 13, 16], "env_var_nam": 10, "environ": [4, 10, 19, 20], "envvarctx": [0, 19, 20], "epydoc": 17, "equival": [14, 18, 19, 20], "error": [15, 16, 17, 18, 20], "errorduringimporterror": [0, 16, 20], "escap": [4, 15], "etc": [10, 13, 14, 18, 20], "eval": [1, 17, 18, 20], "evalu": [13, 18], "even": [4, 13, 14, 18, 20], "even_if_previously_error": 13, "everi": [1, 20], "everywher": 5, "exampl": [1, 10, 11, 14, 16, 17, 18, 20], "exc_info": [4, 13, 18], "except": [1, 2, 4, 5, 7, 8, 9, 11, 13, 14, 16, 18, 19, 20], "excepthook": 4, "exclud": 8, "excludeimplicitcwdfrompathctx": [0, 19, 20], "exec": [6, 17, 18], "exec_stdin": [18, 20], "execfil": [18, 20], "execut": [1, 4, 13, 14, 18, 20], "exist": [1, 4, 5, 10, 11, 13, 14, 16, 20], "exit": [4, 9, 13, 18, 20], "exit1": [0, 2, 20], "expand": 10, "expand_py_files_from_arg": [0, 5, 20], "expect": 11, "expected_path": 13, "explicit": [1, 18], "export": [16, 20], "expr": 18, "express": [17, 18], "extend": [18, 20], "extens": 20, "extra": [2, 13, 19], "extract": [3, 17], "extract_import_stat": [0, 3, 20], "f": [1, 9], "f1": 9, "f2": 9, "fact": 13, "fail": [1, 20], "failur": 1, "fals": [1, 2, 4, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20], "far": 13, "fd": 4, "featur": [0, 6, 9, 15, 20], "februari": 14, "feedstock": 20, "few": 20, "field": [1, 12, 17, 20], "figur": [13, 18, 20], "file": [4, 5, 6, 10, 15, 18, 20], "filenam": [2, 4, 5, 10, 11, 13, 14, 16, 18, 20], "filename_arg": [0, 2, 18, 20], "filepo": [0, 5, 17, 20], "filetext": [0, 5, 17, 20], "fill": [0, 7, 20], "find": [1, 5, 11, 16, 17, 18, 20], "find_import_block_by_lineno": [11, 20], "find_missing_import": [1, 20], "find_unused_import": 1, "first": [1, 3, 5, 7, 10, 11, 12, 13, 15, 17, 18, 20], "fit": 11, "fix": [11, 13, 20], "fix_unused_and_missing_import": [0, 11, 20], "flag": [6, 9, 13, 17, 18, 20], "flaw": 17, "fledg": 18, "float": 18, "follow": [1, 13, 14, 17, 20], "foo": [1, 7, 8, 10, 11, 13, 14, 17, 18, 19, 20], "foo1": [1, 20], "foo2": [1, 20], "foo3": 1, "foo4": 1, "foo5": 1, "foo6": 1, "foonbar": 17, "foopackag": 20, "forc": [4, 14], "forg": 20, "fork": 4, "form": [8, 10, 14, 20], "format": [11, 20], "formatparam": [0, 7, 20], "found": [1, 5, 11, 18], "frame": [4, 13, 20], "frametyp": 4, "friend": 20, "from": [1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20], "from_filenam": [5, 20], "from_spac": [12, 20], "frontend": 3, "frozenset": 9, "full": [4, 13, 18], "fullargspec": 18, "fulli": 1, "fullnam": [1, 9, 13], "func_typ": 1, "function": [1, 2, 3, 4, 5, 13, 14, 15, 17, 18, 19, 20], "function_nam": 18, "functiondef": 17, "functionwithglob": [0, 19, 20], "further": [1, 20], "futur": [14, 18], "g": [1, 4, 13, 16, 17], "gdb": 4, "gener": [1, 10, 13, 14, 17, 18, 20], "generic_visit": [1, 20], "get": [1, 4, 10, 13, 14, 16, 18, 19, 20], "get_execut": [0, 4, 20], "get_global_namespac": [0, 13, 20], "get_ipython_terminal_app_with_autoimport": [0, 13, 20], "get_known_import": [0, 1, 20], "get_stat": [9, 20], "getattr": 1, "git": 20, "github": 20, "give": 14, "given": [1, 2, 7, 9, 11, 17, 18, 20], "global": [1, 4, 11, 13, 14, 18, 19, 20], "gnu": 20, "good": 20, "greedi": 13, "group": 20, "guess": [17, 18], "guido": 14, "gz": 20, "h": 18, "ha": [1, 13, 14, 17, 20], "hack": 15, "halloween": 18, "hand": 14, "handl": [3, 13, 16, 18], "handler": [3, 4], "hanging_ind": [7, 20], "happen": 20, "hard": 20, "has_star_import": [1, 20], "hasn": 13, "have": [1, 3, 5, 9, 14, 18, 20], "head": 20, "heed_hook": 14, "hello": [7, 18, 19, 20], "help": [4, 18, 20], "helper": 1, "here": 1, "heurist": [11, 18], "heuristic_cmd": [18, 20], "heuristic_run_modul": [18, 20], "hfmt": [0, 2, 20], "home": 20, "homer": 10, "hook": [4, 13, 19], "hookctx": [15, 20], "how": [12, 18, 20], "howev": 14, "html": [3, 14], "http": [3, 14, 18, 19, 20], "hyphen": 20, "i": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "id": 4, "identifi": [1, 8, 9, 16], "if_debug": 13, "ignor": [9, 14], "ignore_nonimport": 9, "ignore_pkg": 13, "ignore_shadow": 9, "ignoreoptionsdoctestpars": [0, 17, 20], "immedi": [4, 17, 18], "immut": 9, "imp": [1, 11], "implement": [9, 13, 14, 19], "import": [1, 3, 6, 9, 11, 12, 13, 14, 16, 18], "import_a": [9, 12, 20], "import_format_param": 2, "import_modul": [0, 16, 20], "importalreadyexistserror": [0, 11, 20], "importdb": [1, 13], "importerror": 16, "importformatparam": [0, 12, 20], "importmap": [0, 9, 20], "importpathctx": [0, 19, 20], "importpathforrelativeimportsctx": [0, 11, 20], "importset": [0, 9, 16, 20], "importsplit": [0, 12, 20], "importstat": 9, "imposs": 20, "improv": 14, "impset": 9, "in_jupyt": [0, 3, 20], "inaccess": 5, "includ": [1, 5, 13, 20], "include_class_scop": 1, "increas": 20, "indent": [0, 7, 19, 20], "independ": 20, "index": [5, 17, 18, 20], "indic": 7, "inf": 11, "infeas": 14, "infer": 17, "infer_compile_mod": [0, 17, 20], "info": [9, 15, 18], "info_en": [15, 20], "inform": 20, "inherit": 20, "init_shel": [13, 20], "initi": [4, 13, 18, 20], "initialize_comm": [0, 3, 20], "inject": [0, 4, 18, 20], "input": [5, 8, 10, 11, 13, 18, 20], "input_cod": 3, "input_cont": [2, 20], "input_content_filenam": [2, 20], "input_flag": 17, "insert": [18, 20], "insert_new_blocks_after_com": [11, 20], "insert_new_import_block": [11, 20], "insid": [13, 15], "instal": [4, 13], "install_in_ipython_config_fil": [13, 20], "instanc": [4, 13, 14, 16, 20], "instead": [4, 12, 14, 18], "instruct": [18, 20], "int": [1, 4, 5, 12, 17, 19], "integ": 12, "integr": 18, "intend": [11, 18], "intent": [1, 18], "interact": [3, 4, 13, 18, 20], "interactiveshel": 13, "interactiveshellapp": 20, "interactiveshellemb": 13, "interceptprintsduringpromptctx": [0, 13, 20], "interdepend": 14, "interfac": [15, 20], "intern": 20, "interpol": 1, "interpret": [17, 18], "interrupted_fram": 4, "introduc": 16, "invert": 18, "invoc": [0, 20], "invok": 1, "io": 3, "ip": 13, "ipcomplet": 13, "ipdb": 20, "ipython": [4, 13, 15, 18], "ipython_config": 20, "is_identifi": [0, 8, 20], "isatti": 4, "isinst": 20, "isn": [13, 20], "item": [1, 5, 9, 13, 17, 18, 19, 20], "items1": 19, "items2": 19, "iter": [4, 12, 17, 19], "iter_child_nod": 17, "iteritem": [9, 20], "iterkei": [9, 20], "its": [13, 14, 17, 18, 20], "itself": [16, 18], "j": 18, "join": [1, 5, 20], "joinpoint": [13, 19], "jump": 1, "jupyt": [3, 18, 20], "jupyterlab": 3, "just": [1, 3, 12, 13, 14, 17], "k": 19, "karl": 20, "keep": [4, 14], "keep_cach": 14, "keep_exist": 4, "kei": [9, 17, 20], "kernel": 13, "kernel_manag": 13, "keyerror": 14, "keyword": [8, 12, 18, 20], "kill": 4, "kill_process": [0, 4, 20], "kill_sign": 4, "know": [1, 14, 20], "known": [1, 9, 16], "known_import": 20, "kwarg": [1, 4, 7, 12, 13, 14, 18, 19], "kwd": [12, 17], "l7": 1, "lambda": [1, 5, 18, 19], "larg": 14, "last": [1, 5, 7, 20], "later": [1, 13], "latest": 20, "lazili": 20, "leaf": 17, "least": [7, 12], "left": 20, "len": 18, "length": [17, 18], "letter": 18, "level": [2, 12, 13, 15, 16], "lib": [18, 20], "libc": 18, "librari": 18, "lieneno": [17, 20], "like": [1, 14, 18, 20], "linalg": 9, "line": [2, 5, 7, 11, 13, 17, 18, 19], "lineindex": 5, "lineno": [1, 5, 11, 17, 20], "linenumberambiguouserror": [0, 11, 20], "linenumbernotfounderror": [0, 11, 20], "list": [1, 2, 5, 8, 10, 12, 13, 14, 16, 17, 18, 19, 20], "liter": [17, 18], "live": 14, "livepatch": 14, "load": [1, 14, 18, 20], "load_ext": 20, "load_symbol": [0, 1, 20], "loads_without_stor": 1, "loadsymbolerror": [0, 1, 20], "local": [1, 4, 13, 18, 20], "localhost": 4, "locat": 20, "log": [4, 15, 18], "log2": 20, "loggedlist": [0, 18, 20], "logger": [13, 15], "long": 20, "longest": [8, 11, 19], "longest_common_prefix": [0, 19, 20], "look": [19, 20], "loop": [1, 18, 20], "love": 20, "m": [1, 2, 9, 18, 20], "m1": [9, 11, 14], "m2": [9, 11, 14], "m3": [9, 11], "m34": 9, "m4": [9, 11], "made": 1, "magic": [13, 19, 20], "mai": [1, 16, 20], "mail": 14, "mailto": 4, "main": 17, "maindoc": [0, 2, 20], "maintain": 20, "mainten": 20, "make": [4, 12, 17, 20], "manag": [1, 4, 11, 13, 18, 19], "manipul": 18, "map": [9, 12, 17, 18], "mark": 1, "match": [1, 9, 13, 14, 17], "matplotlib": [18, 20], "matrix": 18, "matter": 20, "max_line_length": [7, 20], "max_lineno": 11, "maximum": 4, "maxint": 20, "mayb": [14, 20], "mean": [8, 11, 17, 20], "meant": 1, "mechan": 14, "member": [9, 13, 18, 20], "member_nam": [9, 12, 20], "memoiz": [4, 14], "memori": 14, "merg": [1, 9, 18], "merged_to_two": [1, 20], "messag": [2, 3, 17, 18], "meta_path": 16, "metadata": 20, "metafunct": 19, "method": [1, 14, 18, 19, 20], "mgr": 19, "mime": 16, "mimic": 13, "min_start_lineno": 17, "minpo": 17, "miss": [1, 11, 20], "missing_import": [1, 20], "mit": 20, "mode": [1, 4, 13, 17, 18], "modifi": [0, 2, 11, 14, 19, 20], "modify_action_param": 2, "modify_funct": 2, "modnam": [14, 18], "modul": [0, 20], "module_nam": [12, 16, 20], "modulehandl": [0, 16, 20], "modulenam": [1, 12, 16], "moduletyp": [14, 16], "monkei": 19, "month": 18, "more": [1, 17, 20], "most": [1, 13, 16, 20], "mount": 10, "move": 1, "msg": [3, 4], "multilin": 17, "multipl": [18, 20], "multitool": [18, 20], "must": [1, 7, 8, 12], "mutabl": 1, "my_funct": 20, "my_livepatch": 14, "myclass": 20, "mymodul": 20, "myobj": 14, "mypackag": 20, "myprogram": 20, "mypythonstuff": 20, "n": [1, 5, 7, 9, 11, 13, 17, 18, 19, 20], "name": [1, 4, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20], "nameerror": 1, "namespac": [1, 13, 14, 16, 18, 19, 20], "namespace_dict": 13, "nan": 20, "narang": 1, "nb": 18, "nbar": 17, "necessari": [4, 12, 13, 14, 17, 18, 20], "necessarili": 14, "need": [1, 4, 13, 14, 17, 18, 20], "nest": [0, 16, 19, 20], "never": [7, 18, 20], "new": [1, 9, 11, 12, 13, 14, 17, 18, 19, 20], "new_class_scop": 1, "new_dict": 14, "new_func": 14, "new_import": 9, "new_ipdb_inst": [0, 13, 20], "new_item": 18, "new_method": 14, "new_mod": 14, "newclass": 14, "newer": 17, "newfunct": 20, "newlin": [5, 7, 13], "newmodul": 20, "newobj": 14, "next": 4, "nfrom": 9, "nightmar": 20, "nnumpi": 1, "noactiveipythonapperror": [0, 13, 20], "node": [1, 16, 17], "noimportblockerror": [0, 11, 20], "noipythonpackageerror": [0, 13, 20], "non": [4, 9, 11, 17], "noncod": 17, "none": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "nonetyp": 13, "nor": 18, "normal": 1, "nosuchimporterror": [0, 9, 20], "notafunctionerror": [0, 18, 20], "note": [1, 4, 13, 16, 18], "notebook": [3, 18, 20], "noth": [1, 14, 16, 19], "notic": 20, "now": [17, 20], "np": [11, 20], "null": 4, "nullctx": [0, 19, 20], "number": [4, 11, 12, 17, 18, 20], "nump": 20, "numpi": [1, 9, 11, 18, 20], "nworld": 19, "o": [1, 8, 19], "obj": [13, 14, 18], "object": [1, 4, 6, 12, 13, 14, 17, 18, 19, 20], "objnam": 18, "occasion": 20, "occur": [16, 18], "off": [13, 20], "offset": 1, "old": 14, "old_dict": 14, "old_func": 14, "old_method": 14, "old_mod": 14, "oldclass": 14, "oldest": 10, "oldfunct": 20, "oldmodul": 20, "oldobj": 14, "omit": 18, "on_error": [2, 5, 13], "on_existing_handl": 4, "onc": 19, "one": [1, 7, 11, 13, 14, 18, 20], "ones": [1, 14], "onli": [1, 11, 13, 14, 16, 17, 18, 20], "onto": 1, "op": 1, "open": [3, 4], "oper": 14, "opinion": 4, "opt_str": 2, "option": [0, 1, 2, 5, 8, 12, 17, 20], "ord": 18, "order": [1, 3, 9, 13, 17, 19, 20], "org": [14, 19, 20], "organ": 9, "oriented_program": 19, "origin": [14, 19, 20], "originalpid": 4, "orm": 1, "other": [1, 9, 12, 14, 17, 18, 19, 20], "otherwis": [1, 4, 5, 9, 17, 18], "our": 13, "out": [13, 20], "output": [11, 17, 18, 20], "output_cont": [2, 20], "output_content_filenam": [2, 20], "output_mod": 18, "outsid": 4, "overid": 4, "overrid": [4, 17, 20], "own": 14, "packag": [9, 13, 16, 18, 20], "page": [18, 20], "panda": [18, 20], "param": [3, 7, 9, 11], "paramet": [1, 4, 5, 7, 8, 9, 11, 13, 14, 15, 17, 18], "parent": [4, 8, 9, 13, 16, 17, 20], "parent_ast_nod": 17, "parenthes": 18, "pars": [1, 2, 8, 13, 17, 18, 20], "parse_arg": [0, 2, 20], "parse_docstr": [1, 20], "parseerror": [0, 18, 20], "parser": [2, 17], "part": [8, 17, 18, 19, 20], "particular": 20, "partit": [0, 10, 19, 20], "pass": [1, 4, 13, 14], "patch": [14, 19, 20], "path": [1, 4, 5, 11, 16, 19, 20], "path_addit": 19, "pathnam": [5, 10], "pd": 20, "pdb": [4, 13, 20], "pdb_instanc": 13, "per": 17, "perfectli": 20, "perform": 14, "permiss": 20, "pformat": 18, "pi": 20, "pick": 11, "pid": [4, 18], "piec": 20, "pinfo": [13, 20], "pinfo2": 20, "pip": 20, "pipe": 4, "pipelin": 13, "pipermail": 14, "pkgutil": 16, "place": [14, 20], "pleas": 20, "plot": [18, 20], "plug": 20, "plugin": 20, "point": [1, 3], "polici": 20, "pop": [18, 20], "posit": [5, 17, 18], "possibl": [13, 14, 17, 20], "post": [14, 15], "post_import_hook": 1, "postmortem": 18, "power": 18, "pprint": [9, 18], "practic": 20, "pre": [4, 15], "precis": 14, "predic": 19, "prefix": [0, 7, 8, 11, 16, 18, 19, 20], "prepend": [7, 19], "preprocess": [11, 20], "present": 18, "pretti": [9, 11, 18], "pretty_print": [9, 11, 20], "previou": [1, 14, 20], "previous": 1, "print": [1, 4, 6, 7, 9, 11, 13, 18, 20], "print_foo": 14, "print_funct": [6, 17], "print_help": [18, 20], "print_result": [0, 18, 20], "print_verbose_tb": [0, 13, 20], "print_vers": [18, 20], "print_version_and_exit": [0, 2, 20], "printf": 18, "privat": 20, "proce": 2, "process": [4, 10, 13, 20], "process_act": [0, 2, 20], "process_exist": [0, 4, 20], "produc": 17, "product": 20, "profile_default": 20, "program": [4, 5, 18, 20], "proj": 20, "project": 18, "prompt": [2, 4, 13], "prompt_toolkit": 15, "properti": [2, 5, 8, 9, 15, 16, 18], "protect": 20, "provid": 20, "proxi": [15, 20], "prun": 13, "pseudo": 18, "pty": [0, 4, 20], "push": [1, 20], "put": [4, 14, 20], "py": [4, 5, 11, 14, 18], "py_main": [0, 18, 20], "pyc": 18, "pyc_to_pi": [0, 16, 20], "pyfil": [0, 7, 20], "pyflybi": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "pyflyby_path": [18, 20], "pyflybylogg": [0, 15, 20], "pylab": 18, "pyplot": [18, 20], "pyproject": [12, 20], "python": [3, 4, 6, 7, 8, 13, 14, 17, 18, 20], "python2": 18, "pythonblock": 11, "q": [4, 18], "qualifi": 1, "quarl": 20, "quiet": 18, "quu": 13, "quuuuux": 7, "quux": [1, 7, 13, 18, 20], "r": 17, "rais": [1, 4, 13, 16, 17, 18, 20], "raise_on_error": 13, "random": 20, "rang": 17, "rather": 19, "ration": 18, "raw": [4, 18], "raw_valu": 18, "re": [1, 3, 13, 15, 17, 20], "reachabl": 20, "read": [4, 12, 20], "read_black_config": [0, 12, 20], "read_fil": [0, 5, 20], "readthedoc": 3, "realli": 14, "reason": [14, 17, 20], "recent": 1, "recipi": 4, "recogn": 16, "record": 15, "recurs": [1, 5, 10, 14, 17, 20], "redirect": 4, "redisplai": 13, "redo": 20, "refactor": 1, "refer": [1, 13, 14, 19], "referenc": 1, "reformat": 20, "regist": 4, "regular": [13, 14, 18], "rel": 11, "relev": [1, 20], "reload": 14, "remain": [3, 14, 18], "remov": [1, 7, 9, 11, 18, 19, 20], "remove_comm": [0, 3, 20], "remove_import": [11, 20], "remove_unus": [11, 20], "renam": 20, "repack": 20, "replac": [10, 12, 14, 17, 18, 20], "repositori": 20, "repr": 18, "repr_if_not_non": 18, "repres": [1, 5, 17], "represent": [6, 9, 12], "request": [1, 18], "requir": [1, 18], "reraise_except": 2, "reset": 4, "reset_state_new_cel": [13, 20], "resolv": 1, "restor": 4, "result": [1, 4, 14, 17, 18], "retar": 20, "return": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "revers": [8, 18, 20], "right": 20, "rossum": 14, "roughli": 14, "run": [4, 13, 15, 18, 19, 20], "run_ipython_line_mag": [0, 13, 20], "run_modul": [18, 20], "run_tidy_import": [0, 3, 20], "runtim": 19, "safe": [4, 18], "salut": 8, "same": [1, 7, 9, 10, 13, 14, 17, 20], "satisfi": 17, "save": 20, "scan_for_import_issu": [0, 1, 20], "scheme": 13, "scipi": [1, 20], "scope": 1, "scope_info": [8, 20], "scopestack": [0, 1, 20], "scratch": [13, 14], "script": [2, 18, 20], "sdist": 20, "search": [1, 5, 20], "second": [3, 4, 13], "section": 20, "see": [1, 9, 14, 19, 20], "seem": 18, "select": 11, "select_import_block_by_closest_prefix_match": [11, 20], "self": [1, 9, 14, 19], "send": 4, "send_comm_messag": [0, 3, 20], "sep": 7, "separ": [7, 20], "separate_from_import": [9, 12, 20], "sequenc": [4, 5, 7, 12, 14, 17], "session": [4, 13, 20], "set": [1, 4, 9, 12, 14, 15, 17, 18, 20], "set_level": [15, 20], "setattr": 14, "setitem": 14, "setraw_but_sigint": [0, 4, 20], "setup": [2, 20], "sgfsbg93zwvu": 18, "shadow": 20, "share": 20, "shasum": 20, "shaw": 20, "shebang": 18, "shell": [13, 18], "shim": 13, "shine": 14, "short": 18, "shortest": 8, "should": [4, 12, 13, 14, 16, 17, 18], "show": [18, 20], "show_gdb_output": 4, "side": 1, "sig": 14, "sign": 20, "signal": 4, "signal_numb": 4, "signatur": [1, 18], "signum": 4, "sigquit": 18, "sigterm": 4, "silent": [4, 18], "silently_overrid": 4, "similar": 14, "simpli": [17, 20], "sin": 20, "sinc": [1, 14, 18], "singl": [1, 7, 8, 9, 12, 17, 18], "singleton": 13, "site": 18, "slice": 17, "slow": [1, 20], "small": 13, "so": [1, 11, 13, 14, 18, 19, 20], "softwar": 20, "some": [1, 3, 13, 17, 18], "some_condit": 20, "some_token": 8, "someon": [19, 20], "someth": [14, 15, 17], "sometim": 20, "somewher": 13, "sophist": 1, "sort": [9, 18, 20], "sourc": [1, 13, 17, 18, 20], "source_date_epoch": 20, "source_flag": [17, 20], "sourcetosourcefileimportstransform": [0, 11, 20], "sourcetosourceimportblocktransform": [0, 11, 20], "sourcetosourcetransform": [0, 11, 20], "sourcetosourcetransformationbas": [0, 11, 20], "space": [12, 17], "special": 14, "specif": 20, "specifi": [5, 10, 11, 12, 17, 18, 20], "split": [5, 10, 17], "spyder": 20, "sqlalchemi": 1, "squar": 18, "src": 13, "src_fd": 4, "ssh": 4, "st_dev": 10, "stabl": 3, "stable_uniqu": [0, 19, 20], "stack": [1, 4, 20], "standalon": 17, "standard": 14, "star": 1, "start": [13, 17, 18], "start_ipython": [18, 20], "start_ipython_kernel_with_autoimport": [0, 13, 20], "start_ipython_with_autoimport": [0, 13, 20], "start_stop": 18, "startpo": [5, 17, 20], "startswith": [8, 20], "startup": 20, "stat": 20, "state": 13, "statement": [3, 4, 7, 9, 11, 12, 17, 18, 20], "static": [1, 5, 16], "stderr": [4, 13, 15, 18], "stdin": [4, 13, 18], "stdio": 4, "stdout": [1, 4, 13, 18, 20], "step": 20, "stop": 20, "store": 1, "str": [1, 3, 4, 5, 7, 8, 9, 12, 13, 14, 17, 18], "strace": 4, "strict": 20, "string": [1, 4, 5, 7, 8, 9, 13, 17, 18], "structur": 9, "stuff": 20, "style": 20, "subapp": 13, "submit": 20, "submodul": [13, 16, 20], "subrang": 17, "subsequ": [7, 18], "subset": 17, "subtext": 17, "succe": 1, "succeed": 1, "success": 1, "successfulli": [1, 14], "suffix": 7, "suitabl": 4, "summari": [0, 20], "support": [1, 4, 17, 18], "suppos": [1, 10, 14, 18, 19, 20], "sure": 20, "sy": [4, 9, 11, 13, 15, 16, 18, 19, 20], "symbol": [1, 13, 16, 20], "symbol_needs_import": [0, 1, 20], "symlink_callback": [0, 2, 20], "symlink_error": [0, 2, 20], "symlink_follow": [0, 2, 20], "symlink_replac": [0, 2, 20], "symlink_skip": [0, 2, 20], "syntact": 17, "syntax": [0, 2, 20], "sys_path_entri": 13, "sysargvctx": [0, 18, 20], "syscal": 4, "syscall_mark": [0, 4, 20], "system": [13, 20], "systemexit": 18, "systemwid": 20, "t": [1, 4, 5, 13, 14, 16, 17, 18, 20], "t1": 9, "t2": 9, "t2a": 9, "t2b": 9, "t3": 9, "t4": 9, "tab": [9, 13, 20], "tabl": 14, "tag": 20, "take": [1, 14, 17], "take_arg": [0, 1, 20], "tar": 20, "target": [1, 4, 14, 18, 19, 20], "target_dirnam": 10, "target_fd": 4, "target_nam": 3, "team": 20, "tell": 20, "temporarili": [1, 11, 18, 19], "termin": [4, 13], "terminalipythonapp": 13, "terminalpdb": 13, "test": [13, 14, 17, 18, 20], "text": [3, 5, 8, 16, 17, 18, 20], "than": [1, 11, 17, 19, 20], "thei": [12, 17, 18], "them": [7, 11, 18, 20], "thi": [1, 3, 4, 5, 9, 13, 14, 15, 16, 17, 18, 19, 20], "thing": [1, 16, 17], "those": [1, 17, 20], "though": [4, 14], "threa": 13, "thread": 13, "threaderror": 13, "threadi": 13, "through": 19, "tidi": 18, "time": [13, 15, 19, 20], "timeit": [13, 20], "timeout": 4, "tmp": [11, 20], "todo": 1, "token": [7, 8, 12], "toml": [12, 20], "tool": 18, "top": [2, 16], "topmost": 1, "touch": 14, "trace": 4, "traceback": [1, 13], "track": 14, "trail": [7, 8], "transform": 20, "travers": [10, 20], "treat": [17, 18], "tri": [4, 16], "tripl": 10, "trivial": 20, "true": [1, 4, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20], "truss": 4, "try": [1, 4, 13, 14, 16, 17], "tt": 10, "tty": [4, 18], "tty_is_us": [0, 4, 20], "tupl": [1, 4, 5, 7, 8, 9, 10, 12, 13, 16, 17], "turn": [13, 18], "twice": 1, "twine": 20, "two": [1, 7, 14], "txt": 20, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20], "typecom": 1, "typic": 17, "u": [4, 10, 20], "ultratb": 13, "unabl": 14, "unaccess": [18, 20], "unadvis": [19, 20], "unbound": 18, "unchang": [19, 20], "undefin": [10, 11, 18], "under": [1, 4, 18, 20], "underscor": 20, "undesir": 14, "undo": 20, "unfortun": 17, "unhandl": 18, "unhid": 1, "unhide_classdef": 1, "unimportablenameerror": [0, 18, 20], "uninstal": 19, "union": [9, 12], "unknown": 14, "unknownmoduleerror": [0, 14, 20], "unpars": 18, "unsafefilenameerror": [0, 5, 20], "until": [17, 18, 20], "unus": [1, 11, 20], "unused_import": [1, 20], "up": [1, 4, 7, 10], "updat": [13, 14, 20], "updateipythonstdioctx": [0, 13, 20], "upload": 20, "upon": [4, 13, 18], "upstream": 20, "us": [1, 4, 5, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20], "usabl": 4, "usag": [2, 20], "use_black": [7, 20], "user": [1, 4, 13, 18, 20], "userexpr": [0, 18, 20], "usr": 18, "usual": 20, "util": [3, 17], "valid": [8, 17, 18], "valu": [1, 2, 3, 4, 9, 12, 13, 17, 18, 20], "valueerror": 17, "van": 14, "variabl": [1, 10, 17, 19], "variou": [4, 20], "ve": 1, "verbos": 18, "veri": 20, "verifi": 20, "version": [17, 18, 20], "versu": 17, "via": [14, 18], "victori": 18, "visibl": 4, "visit": [1, 20], "visit_alia": [1, 20], "visit_arg": [1, 20], "visit_argu": [1, 20], "visit_assign": [1, 20], "visit_asyncfunctiondef": [1, 20], "visit_attribut": [1, 20], "visit_cal": [1, 20], "visit_classdef": [1, 20], "visit_comprehens": [1, 20], "visit_const": [1, 20], "visit_delet": [1, 20], "visit_dict": [1, 20], "visit_dictcomp": [1, 20], "visit_excepthandl": [1, 20], "visit_expr": [1, 20], "visit_functiondef": [1, 20], "visit_generatorexp": [1, 20], "visit_importfrom": [1, 20], "visit_lambda": [1, 20], "visit_listcomp": [1, 20], "visit_match": [1, 20], "visit_match_cas": [1, 20], "visit_matcha": [1, 20], "visit_matchmap": [1, 20], "visit_modul": [1, 20], "visit_nam": [1, 20], "visit_pass": [1, 20], "visit_setcomp": [1, 20], "visit_stack": 14, "visitor": 1, "wa": [1, 4, 11, 14, 15, 17, 20], "wai": [17, 20], "wait": 4, "wait_for_debugger_to_attach": [0, 4, 20], "waitpoint": 18, "walk": 17, "want": [1, 14, 20], "warn": [1, 4, 15, 18], "warn_and_overrid": 4, "we": [1, 4, 8, 13, 14, 15, 17, 19, 20], "web": 18, "week": 18, "weekdai": 18, "welcom": 20, "well": [1, 12, 20], "were": [13, 15, 18], "what": [1, 4, 14, 18, 20], "whatev": 1, "when": [1, 4, 11, 13, 14, 17, 18, 20], "where": [14, 15, 17, 20], "whether": [1, 4, 8, 12, 13, 14, 16, 17, 18], "which": [0, 1, 3, 5, 11, 12, 13, 14, 17, 18, 20], "while": [1, 4, 16, 18], "whitespac": 7, "whose": [13, 14, 17], "wiki": 19, "wikipedia": 19, "willowbrook29817621": 18, "with_import": [9, 20], "with_new_scop": [1, 20], "with_stat": [6, 20], "within": [1, 4, 5, 12, 17, 20], "without": [1, 4, 9, 18, 19, 20], "without_import": [9, 20], "won": 1, "work": [11, 12, 13, 14, 16, 17, 19], "world": [7, 9, 18, 19], "would": [1, 4, 14, 16, 18, 20], "wrap": [12, 19], "wrap_paren": [7, 20], "wrapped_fn": 14, "wrappedattributeerror": [0, 19, 20], "wrapper": [13, 19], "writabl": 19, "write": [4, 18], "write_fil": [0, 5, 20], "written": [15, 19, 20], "wrong": 20, "wrote": 19, "x": [1, 6, 17, 18, 19, 20], "x11": 20, "x1b": 15, "xemac": 20, "xreload": 14, "xxx": [14, 20], "y": [1, 18, 19, 20], "ye": 18, "year": 18, "yet": [13, 18, 20], "yield": [4, 8, 17], "you": [14, 19, 20], "your": 20, "your_nam": 8, "z": 20, "zip": 20, "zot": 20}, "titles": ["pyflyby API", "_autoimp module", "_cmdline module", "_comms module", "_dbg module", "_file module", "_flags module", "_format module", "_idents module", "_importclns module", "_importdb module", "_imports2s module", "_importstmt module", "_interactive module", "_livepatch module", "_log module", "_modules module", "_parse module", "_py module", "_util module", "Pyflyby"], "titleterms": {"A": 20, "It": 20, "_autoimp": 1, "_cmdline": 2, "_comm": 3, "_dbg": 4, "_file": 5, "_flag": 6, "_format": 7, "_ident": 8, "_importcln": 9, "_importdb": 10, "_imports2": 11, "_importstmt": 12, "_interact": 13, "_livepatch": 14, "_log": 15, "_modul": 16, "_pars": 17, "_py": 18, "_util": 19, "an": 20, "api": 0, "authorship": 20, "auto": 20, "autoimport": 20, "automat": 20, "avoid": 20, "behavior": 14, "canonic": 20, "command": 20, "compat": 20, "configur": 20, "content": [0, 20], "custom": 14, "debug": 20, "detail": 20, "emac": 20, "featur": 18, "forget": 20, "implement": 20, "import": 20, "indic": 20, "instal": 20, "invoc": 18, "ipython": 20, "issu": 20, "just": 20, "known": 20, "lazi": 20, "librari": 20, "licens": 20, "line": 20, "mandatori": 20, "modul": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "multi": 20, "option": 18, "per": 20, "project": 20, "py": 20, "pyflybi": [0, 20], "quick": 20, "releas": 20, "reproduc": 20, "savefram": 20, "soapbox": 20, "star": 20, "start": 20, "summari": 18, "support": 20, "tabl": 20, "tidi": 20, "tool": 20, "util": 20, "variabl": 20, "work": 20}})
\ No newline at end of file