├── index.md ├── charter.md ├── meeting-notes.md ├── .gitattributes ├── .gitignore ├── pixi.toml ├── .readthedocs.yaml ├── myst.yml ├── .github ├── meeting-notes-templates │ └── core.md └── workflows │ ├── pr-rtd-link.yml │ ├── deploy-to-gh-pages.yml │ └── meeting-notes.yml ├── LICENSE ├── README.md ├── plugin └── listing.py └── pixi.lock /index.md: -------------------------------------------------------------------------------- 1 | # Jupyter Community Committee 2 | -------------------------------------------------------------------------------- /charter.md: -------------------------------------------------------------------------------- 1 | # Charter 2 | 3 | Charter goes here! 4 | -------------------------------------------------------------------------------- /meeting-notes.md: -------------------------------------------------------------------------------- 1 | # Meeting notes 2 | 3 | :::{listing} 4 | ::: 5 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # SCM syntax highlighting & preventing 3-way merges 2 | pixi.lock merge=binary linguist-language=YAML linguist-generated=true 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # pixi environments 2 | .pixi/* 3 | !.pixi/config.toml 4 | 5 | # MyST build outputs 6 | _build 7 | 8 | # Feed files 9 | *.xml 10 | -------------------------------------------------------------------------------- /pixi.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | authors = ["Matt Fisher "] 3 | channels = ["conda-forge"] 4 | name = "community" 5 | platforms = ["linux-64"] 6 | version = "0.1.0" 7 | 8 | [tasks] 9 | preview = "myst start" 10 | render = "myst build --html" 11 | 12 | [dependencies] 13 | mystmd = ">=1.7.0,<2" 14 | python = ">=3.14.2,<3.15" 15 | pandas = ">=2.3.3,<3" 16 | feedgen = ">=1.0.0,<2" 17 | pyyaml = ">=6.0.3,<7" 18 | -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # For this project, we use ReadTheDocs only for Pull Request previews. GitHub 2 | # pages currently hosts the actual website. 3 | version: 2 4 | 5 | 6 | build: 7 | os: "ubuntu-lts-latest" 8 | 9 | commands: 10 | - "asdf plugin add pixi" 11 | - "asdf install pixi latest" 12 | - "asdf global pixi latest" 13 | 14 | - "pixi run render" 15 | - "mkdir --parents $READTHEDOCS_OUTPUT/html/" 16 | - "mv _build/html/* $READTHEDOCS_OUTPUT/html/." 17 | - "rm -rf _build" # RTD build fails if _build/html is detected :( 18 | -------------------------------------------------------------------------------- /myst.yml: -------------------------------------------------------------------------------- 1 | # See docs at: https://mystmd.org/guide/frontmatter 2 | version: 1 3 | project: 4 | title: "Jupyter Community Committee" 5 | # description: 6 | # keywords: [] 7 | # authors: [] 8 | github: "https://github.com/jupyter/community" 9 | plugins: 10 | - type: "executable" 11 | path: "plugin/listing.py" 12 | toc: 13 | - file: "index.md" 14 | - file: "charter.md" 15 | - file: "meeting-notes.md" 16 | children: 17 | - pattern: "meeting-notes/**/*.md" 18 | hidden: true 19 | site: 20 | template: "book-theme" 21 | # options: 22 | # favicon: favicon.ico 23 | # logo: site_logo.png 24 | -------------------------------------------------------------------------------- /.github/meeting-notes-templates/core.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Jupyter Community Committee Meeting" 3 | description: | 4 | A bi-weekly gathering of the Community Committee. 5 | date: "{{ date.strftime('%Y-%m-%d') }}" 6 | image: "../images/community-meeting.jpg" 7 | author: 8 | - name: "The Community Committee" 9 | categories: 10 | - "Meeting notes" 11 | tags: [meeting-notes] 12 | --- 13 | 14 | # Community Committee Meeting ({{ date.strftime("%Y-%m-%d") }}) 15 | 16 | Please add new agenda items under the `New agenda items` heading! 17 | 18 | - [Previous meetings](https://jupyter.org/community-committee/meeting-notes/) 19 | - [Jupyter Community Committee](https://jupyter.org/governance/list-of-standing-committees-and-working-groups/#jupyter-community-building) handy links: 20 | - [GitHub repo](https://github.com/jupyter/community-committee) 21 | 22 | 23 | ## Attendees 24 | 25 | * Name 26 | * Name 27 | * Name 28 | * Name 29 | 30 | 31 | ### Action items 32 | 33 | - [ ] ... 34 | 35 | 36 | ### Agenda & notes 37 | 38 | - ... -------------------------------------------------------------------------------- /.github/workflows/pr-rtd-link.yml: -------------------------------------------------------------------------------- 1 | # The ReadTheDocs preview link is "hidden" within the GitHub "Checks" 2 | # interface. For users who don't know this, finding the preview link may be 3 | # very difficult or frustrating. This workflow makes the link more 4 | # findable by updating PR descriptions to include it. 5 | name: 'Add ReadTheDocs preview link to PR description' 6 | 7 | on: 8 | pull_request_target: 9 | types: 10 | - 'opened' 11 | 12 | permissions: 13 | pull-requests: 'write' 14 | 15 | jobs: 16 | autolink-rtd-previews: 17 | runs-on: 'ubuntu-latest' 18 | steps: 19 | - uses: 'readthedocs/actions/preview@v1' 20 | with: 21 | project-slug: 'jupyter-community-committee' 22 | single-version: true 23 | single-language: true 24 | message-template: | 25 | --- 26 | :mag: Preview: {docs-pr-index-url} 27 | _Note: This Pull Request preview is provided by ReadTheDocs. Our production website, however, is currently deployed with GitHub Pages._ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | CC-BY (https://creativecommons.org/licenses/by/4.0/) 2 | 3 | You are free to: 4 | 5 | Share — copy and redistribute the material in any medium or format for any purpose, even commercially. 6 | 7 | Adapt — remix, transform, and build upon the material for any purpose, even commercially. 8 | 9 | The licensor cannot revoke these freedoms as long as you follow the license terms. 10 | 11 | Under the following terms: 12 | 13 | Attribution — You must give appropriate credit , provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 14 | 15 | No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 16 | 17 | Notices: 18 | 19 | You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation . 20 | 21 | No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jupyter Community Committee Team compass 2 | 3 | **A team compass is a place for community members, new and old, to align on objectives, 4 | practices, and happenings.** 5 | 6 | Please use this repository's issue tracker for any changes related to our policies or 7 | practices -- how we communicate, how we work together. 8 | 9 | 10 | ## Contributing 11 | 12 | This is a [MySTMD](https://mystmd.org) project. 13 | The development environment is managed by [Pixi](https://pixi.sh). 14 | 15 | 16 | ### Start a local preview server 17 | 18 | ```bash 19 | pixi run preview 20 | ``` 21 | 22 | This will start a local preview server. 23 | View your changes immediately in your browser! 24 | Any changes to the website content will trigger an automatic re-render. 25 | 26 | 27 | ### Render the website 28 | 29 | ```bash 30 | pixi run render 31 | ``` 32 | 33 | 34 | ## Common activities 35 | 36 | ### Initialize and sync meeting notes 37 | 38 | Initialize meeting notes on HackMD by navigating to the "Actions" tab of this repo. 39 | Then select "Setup / sync meeting notes" on the left panel. 40 | Now click "Run workflow" in the main workflow listing panel. 41 | Finally, fill in the kind of meeting you're initializing and the date, and click "Run workflow". 42 | 43 |
44 | Screenshot 45 | 46 |
47 | 48 | A Pull Request and HackMD document will be created. 49 | Visit the PR to find the HackMD link. 50 | 51 | When you're ready to sync data from HackMD back to GitHub, comment in the PR with `/bot please sync notes`. 52 | See [an example PR from another project](https://github.com/geojupyter/geojupyter.org/pull/32) for an example. 53 | 54 | > [!NOTE] 55 | > This job may occasionally fail with e.g. 403 response from HackMD. 56 | > In the past, re-running the job has worked. 57 | -------------------------------------------------------------------------------- /.github/workflows/deploy-to-gh-pages.yml: -------------------------------------------------------------------------------- 1 | # This file was created automatically with `myst init --gh-pages` 🪄 💚 2 | # Ensure your GitHub Pages settings for this repository are set to deploy with **GitHub Actions**. 3 | 4 | name: MyST GitHub Pages Deploy 5 | on: 6 | push: 7 | # Runs on pushes targeting the default branch 8 | branches: [main] 9 | env: 10 | # `BASE_URL` determines, relative to the root of the domain, the URL that your site is served from. 11 | # E.g., if your site lives at `https://mydomain.org/myproject`, set `BASE_URL=/myproject`. 12 | # If, instead, your site lives at the root of the domain, at `https://mydomain.org`, set `BASE_URL=''`. 13 | BASE_URL: /${{ github.event.repository.name }} 14 | 15 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 16 | permissions: 17 | contents: read 18 | pages: write 19 | id-token: write 20 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 21 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 22 | concurrency: 23 | group: 'pages' 24 | cancel-in-progress: false 25 | jobs: 26 | deploy: 27 | environment: 28 | name: github-pages 29 | url: ${{ steps.deployment.outputs.page_url }} 30 | runs-on: ubuntu-latest 31 | steps: 32 | - uses: actions/checkout@v4 33 | - name: Setup Pages 34 | uses: actions/configure-pages@v3 35 | - uses: actions/setup-node@v4 36 | with: 37 | node-version: 18.x 38 | - name: Install MyST 39 | run: npm install -g mystmd 40 | - name: Build HTML Assets 41 | run: myst build --html 42 | - name: Upload artifact 43 | uses: actions/upload-pages-artifact@v3 44 | with: 45 | path: './_build/html' 46 | - name: Deploy to GitHub Pages 47 | id: deployment 48 | uses: actions/deploy-pages@v4 49 | -------------------------------------------------------------------------------- /.github/workflows/meeting-notes.yml: -------------------------------------------------------------------------------- 1 | name: "Setup / sync meeting notes" 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | kind: 7 | type: "choice" 8 | description: "What kind of meeting?" 9 | options: 10 | - "core" 11 | date: 12 | description: | 13 | Date of the meeting in `date --date` format, e.g.: 14 | "today", "tomorrow", "next wednesday", "2025-02-05", etc. 15 | See 16 | required: false 17 | default: "today" 18 | type: "string" 19 | 20 | issue_comment: # TODO: Switch to issue comment? 21 | types: 22 | - "created" 23 | - "edited" 24 | 25 | 26 | # IMPORTANT: Enable 'Allow GitHub Actions to create and approve pull requests' 27 | # in repo and organization Actions Settings. 28 | permissions: 29 | contents: "write" 30 | pull-requests: "write" 31 | 32 | 33 | jobs: 34 | create: 35 | name: "Create PR for meeting notes" 36 | if: "github.event_name == 'workflow_dispatch'" 37 | uses: "mfisher87/hackmd-meeting-notes-action/.github/workflows/create-meeting-notes-pr.yml@main" 38 | with: 39 | date: "${{ inputs.date }}" 40 | template_path: ".github/meeting-notes-templates/${{ inputs.kind }}.md" 41 | # TODO: Is this the HackMD path or the repo path?? 42 | output_path: "meeting-notes/%Y%m%d-${{ inputs.kind }}/index.md" 43 | hackmd_team: "jupyter-community" 44 | branch_name: "%Y-%m-%d-${{ inputs.kind }}-meeting-notes" 45 | force_push: true 46 | pr_title: "Add ${{ inputs.kind }} meeting notes %Y-%m-%d" 47 | pr_body: | 48 | Meeting notes initialized at ${env.hackmd_doc_url}. 49 | 50 | After the meeting, sync the notes from HackMD to this PR by commenting: 51 | 52 | ``` 53 | /bot please sync notes 54 | ``` 55 | secrets: 56 | HACKMD_TOKEN: "${{ secrets.HACKMD_TOKEN }}" 57 | 58 | sync-comment-trigger: 59 | name: "React to the triggering comment" 60 | if: "${{ github.event.issue.pull_request && contains(github.event.comment.body, '/bot please sync notes') }}" 61 | runs-on: "ubuntu-latest" 62 | steps: 63 | - name: "React to the triggering comment" 64 | run: | 65 | gh api repos/${{ github.repository }}/issues/comments/${{ github.event.comment.id }}/reactions --raw-field 'content=+1' 66 | env: 67 | GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" 68 | 69 | sync: 70 | name: "Sync notes from HackMD to PR" 71 | needs: 72 | - "sync-comment-trigger" 73 | uses: "mfisher87/hackmd-meeting-notes-action/.github/workflows/sync-meeting-notes-pr.yml@main" 74 | with: 75 | pr_number: "${{ github.event.issue.number }}" 76 | secrets: 77 | HACKMD_TOKEN: "${{ secrets.HACKMD_TOKEN }}" 78 | -------------------------------------------------------------------------------- /plugin/listing.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # With many thanks, based on work by Chris Holdgraf 3 | # https://github.com/choldgraf/choldgraf.github.io/blob/35f2a24818ec73304a9769153796a952c0ec2561/src/blogpost.py 4 | 5 | import argparse 6 | import json 7 | import sys 8 | from pathlib import Path 9 | 10 | import pandas as pd 11 | from feedgen.feed import FeedGenerator 12 | from yaml import safe_load 13 | 14 | ROOT = Path(__file__).parent.parent 15 | LISTING_DIR = ROOT / "meeting-notes" 16 | SUMMARY_WORDS = 50 17 | 18 | DEFAULTS = {"number": 0} 19 | PLUGIN_SPEC = { 20 | "name": "A document listing", 21 | "directives": [ 22 | { 23 | "name": "listing", 24 | "doc": "A listing of documents as cards, sorted by date.", 25 | "arg": {}, 26 | "options": { 27 | "number": { 28 | "type": "int", 29 | "doc": "The number of posts to include (default: 0, or all posts)", 30 | }, 31 | }, 32 | }, 33 | ], 34 | } 35 | 36 | 37 | def aggregate_posts() -> list[dict]: 38 | """Aggregate all posts from the markdown and ipynb files.""" 39 | posts = [] 40 | for ifile in LISTING_DIR.rglob("**/*.md"): 41 | if "drafts" in str(ifile): 42 | continue 43 | 44 | text = ifile.read_text() 45 | try: 46 | _, meta, content = text.split("---", 2) 47 | except Exception: 48 | print(f"Skipping file with malformed frontmatter: {ifile}", file=sys.stderr) 49 | continue 50 | 51 | # Load in YAML metadata 52 | meta = safe_load(meta) 53 | meta["path"] = ifile.relative_to(ROOT).with_suffix("") 54 | if "title" not in meta: 55 | lines = text.splitlines() 56 | for ii in lines: 57 | if ii.strip().startswith("#"): 58 | meta["title"] = ii.replace("#", "").strip() 59 | break 60 | 61 | # Summarize content 62 | skip_lines = ["#", "--", "%", "++"] 63 | content = "\n".join( 64 | ii 65 | for ii in content.splitlines() 66 | if not any(ii.startswith(char) for char in skip_lines) 67 | ) 68 | words = " ".join(content.split(" ")[:SUMMARY_WORDS]) 69 | if "author" not in meta or not meta["author"]: 70 | meta["author"] = "TODO: Get from myst.yml" 71 | meta["content"] = meta.get("description", words) 72 | posts.append(meta) 73 | 74 | if not posts: 75 | return pd.DataFrame() 76 | 77 | posts = pd.DataFrame(posts) 78 | # TODO: Why do we care about TZ? 79 | posts["date"] = pd.to_datetime(posts["date"]).dt.tz_localize("US/Pacific") 80 | posts = posts.dropna(subset=["date"]) 81 | return posts.sort_values("date", ascending=False) 82 | 83 | 84 | def cards_from_posts(posts, /) -> list[dict]: 85 | def ast_text(value, **kwargs): 86 | return {"type": "text", "value": value, **kwargs} 87 | 88 | def ast_strong(children, **kwargs): 89 | return {"type": "strong", "children": children, **kwargs} 90 | 91 | cards = [] 92 | for _, irow in posts.iterrows(): 93 | cards.append( 94 | { 95 | "type": "card", 96 | "url": f"{irow['path'].with_suffix('')}", 97 | "children": [ 98 | {"type": "cardTitle", "children": [ast_text(irow["title"])]}, 99 | {"type": "paragraph", "children": [ast_text(irow["content"])]}, 100 | { 101 | "type": "footer", 102 | "children": [ 103 | ast_strong([ast_text("Date: ")]), 104 | ast_text(f"{irow['date']:%B %d, %Y} | "), 105 | ast_strong([ast_text("Author: ")]), 106 | ast_text(f"{irow['author'][0]['name']}"), 107 | ], 108 | }, 109 | ], 110 | }, 111 | ) 112 | return cards 113 | 114 | 115 | def write_feeds(*, posts) -> None: 116 | """Generate RSS and Atom feeds and write them as XML.""" 117 | # TODO: Get URL from myst.yaml 118 | base_url = "https://example.com" 119 | 120 | fg = FeedGenerator() 121 | 122 | fg.id(base_url) 123 | fg.title("TODO: Get title from myst.yaml") 124 | fg.author( 125 | { 126 | "name": "TODO: Get author from individual posts", 127 | "email": "TODO: Get email from individual posts", 128 | }, 129 | ) 130 | fg.link(href=base_url, rel="alternate") 131 | fg.logo("TODO: Get logo from myst.yaml") 132 | fg.subtitle("TODO: Get description from myst.yaml") 133 | # TODO: This link is going to be wrong because it doesn't take into account 134 | # LISTING_DIR 135 | fg.link(href=f"{base_url}/rss.xml", rel="self") 136 | fg.language("en") 137 | 138 | # Add all posts 139 | for _, irow in posts.iterrows(): 140 | fe = fg.add_entry() 141 | fe.id(f"{base_url}/{irow['path']}") 142 | fe.published(irow["date"]) 143 | fe.title(irow["title"]) 144 | fe.link(href=f"{base_url}/{irow['path']}") 145 | fe.content(content=irow["content"]) 146 | 147 | # Write an RSS feed with latest posts 148 | # TODO: Only write this to the build output, don't commit it 149 | fg.atom_file(LISTING_DIR / "atom.xml", pretty=True) 150 | fg.rss_file(LISTING_DIR / "rss.xml", pretty=True) 151 | 152 | 153 | def print_result(content, /): 154 | """Write result as JSON to stdout. 155 | 156 | :param content: content to write to stdout 157 | """ 158 | 159 | # Format result and write to stdout 160 | json.dump(content, sys.stdout, indent=2) 161 | # Successfully exit 162 | raise SystemExit(0) 163 | 164 | 165 | def run_directive(name, /) -> None: 166 | """Execute a directive with the given name and data 167 | 168 | :param name: name of the directive to run 169 | """ 170 | assert name == "listing" 171 | 172 | data = json.load(sys.stdin) 173 | 174 | opts = data["node"].get("options", {}) 175 | 176 | posts = aggregate_posts() 177 | write_feeds(posts=posts) 178 | 179 | cards = cards_from_posts(posts) 180 | number = int(opts.get("number", DEFAULTS["number"])) 181 | output = cards if number == 0 else cards[:number] 182 | print_result(output) 183 | 184 | 185 | if __name__ == "__main__": 186 | parser = argparse.ArgumentParser() 187 | group = parser.add_mutually_exclusive_group() 188 | group.add_argument("--role") 189 | group.add_argument("--directive") 190 | group.add_argument("--transform") 191 | args = parser.parse_args() 192 | 193 | if args.directive: 194 | run_directive(args.directive) 195 | elif args.transform: 196 | raise NotImplementedError 197 | elif args.role: 198 | raise NotImplementedError 199 | else: 200 | print_result(PLUGIN_SPEC) -------------------------------------------------------------------------------- /pixi.lock: -------------------------------------------------------------------------------- 1 | version: 6 2 | environments: 3 | default: 4 | channels: 5 | - url: https://conda.anaconda.org/conda-forge/ 6 | packages: 7 | linux-64: 8 | - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 9 | - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 10 | - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda 11 | - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda 12 | - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda 13 | - conda: https://conda.anaconda.org/conda-forge/noarch/feedgen-1.0.0-pyhd8ed1ab_2.conda 14 | - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda 15 | - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_104.conda 16 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250127.1-cxx17_hbbce691_0.conda 17 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-4_h4a7cf45_openblas.conda 18 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda 19 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda 20 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda 21 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-4_h0358290_openblas.conda 22 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda 23 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda 24 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h9ec8514_0.conda 25 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_16.conda 26 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_16.conda 27 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_16.conda 28 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_16.conda 29 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_16.conda 30 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda 31 | - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-4_h47877c9_openblas.conda 32 | - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda 33 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda 34 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda 35 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda 36 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda 37 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda 38 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda 39 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-h5347b49_1.conda 40 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda 41 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda 42 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda 43 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda 44 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda 45 | - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.2-py314hae3bed6_2.conda 46 | - conda: https://conda.anaconda.org/conda-forge/noarch/mystmd-1.7.0-pyhcf101f3_0.conda 47 | - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda 48 | - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-25.2.1-h547ee38_0.conda 49 | - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.5-py314h2b28147_0.conda 50 | - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda 51 | - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py314ha0b5721_2.conda 52 | - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.2-h32b2ec7_100_cp314.conda 53 | - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda 54 | - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda 55 | - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda 56 | - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda 57 | - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda 58 | - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda 59 | - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda 60 | - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda 61 | - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda 62 | - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda 63 | - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda 64 | packages: 65 | - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 66 | sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 67 | md5: d7c89558ba9fa0495403155b64376d81 68 | license: None 69 | size: 2562 70 | timestamp: 1578324546067 71 | - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 72 | build_number: 16 73 | sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 74 | md5: 73aaf86a425cc6e73fcf236a5a46396d 75 | depends: 76 | - _libgcc_mutex 0.1 conda_forge 77 | - libgomp >=7.5.0 78 | constrains: 79 | - openmp_impl 9999 80 | license: BSD-3-Clause 81 | license_family: BSD 82 | size: 23621 83 | timestamp: 1650670423406 84 | - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda 85 | sha256: c30daba32ddebbb7ded490f0e371eae90f51e72db620554089103b4a6934b0d5 86 | md5: 51a19bba1b8ebfb60df25cde030b7ebc 87 | depends: 88 | - __glibc >=2.17,<3.0.a0 89 | - libgcc >=14 90 | license: bzip2-1.0.6 91 | license_family: BSD 92 | size: 260341 93 | timestamp: 1757437258798 94 | - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda 95 | sha256: cc9accf72fa028d31c2a038460787751127317dcfa991f8d1f1babf216bb454e 96 | md5: 920bb03579f15389b9e512095ad995b7 97 | depends: 98 | - __glibc >=2.17,<3.0.a0 99 | - libgcc >=14 100 | license: MIT 101 | license_family: MIT 102 | size: 207882 103 | timestamp: 1765214722852 104 | - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda 105 | sha256: b986ba796d42c9d3265602bc038f6f5264095702dd546c14bc684e60c385e773 106 | md5: f0991f0f84902f6b6009b4d2350a83aa 107 | depends: 108 | - __unix 109 | license: ISC 110 | size: 152432 111 | timestamp: 1762967197890 112 | - conda: https://conda.anaconda.org/conda-forge/noarch/feedgen-1.0.0-pyhd8ed1ab_2.conda 113 | sha256: 4af8a1cdc57d8232002fd2c262ca5648075dc8c65c75cb3605deb900df618a23 114 | md5: 763705df2d7cd6849c2a668499e0e2d3 115 | depends: 116 | - lxml >=4.2.5 117 | - python >=3.9 118 | - python-dateutil >=2.8.0 119 | license: BSD-2-Clause 120 | license_family: BSD 121 | size: 39422 122 | timestamp: 1735281256004 123 | - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda 124 | sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e 125 | md5: 8b189310083baabfb622af68fd9d3ae3 126 | depends: 127 | - __glibc >=2.17,<3.0.a0 128 | - libgcc-ng >=12 129 | - libstdcxx-ng >=12 130 | license: MIT 131 | license_family: MIT 132 | size: 12129203 133 | timestamp: 1720853576813 134 | - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_104.conda 135 | sha256: 9e191baf2426a19507f1d0a17be0fdb7aa155cdf0f61d5a09c808e0a69464312 136 | md5: a6abd2796fc332536735f68ba23f7901 137 | depends: 138 | - __glibc >=2.17,<3.0.a0 139 | - zstd >=1.5.7,<1.6.0a0 140 | constrains: 141 | - binutils_impl_linux-64 2.45 142 | license: GPL-3.0-only 143 | license_family: GPL 144 | size: 725545 145 | timestamp: 1764007826689 146 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250127.1-cxx17_hbbce691_0.conda 147 | sha256: 65d5ca837c3ee67b9d769125c21dc857194d7f6181bb0e7bd98ae58597b457d0 148 | md5: 00290e549c5c8a32cc271020acc9ec6b 149 | depends: 150 | - __glibc >=2.17,<3.0.a0 151 | - libgcc >=13 152 | - libstdcxx >=13 153 | constrains: 154 | - abseil-cpp =20250127.1 155 | - libabseil-static =20250127.1=cxx17* 156 | license: Apache-2.0 157 | license_family: Apache 158 | size: 1325007 159 | timestamp: 1742369558286 160 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-4_h4a7cf45_openblas.conda 161 | build_number: 4 162 | sha256: f35fee1eb3fe1a80b2c8473f145a830cf6f98c3b15b232b256b93d44bd9c93b3 163 | md5: 14ff9fdfbd8bd590fca383b995470711 164 | depends: 165 | - libopenblas >=0.3.30,<0.3.31.0a0 166 | - libopenblas >=0.3.30,<1.0a0 167 | constrains: 168 | - liblapack 3.11.0 4*_openblas 169 | - blas 2.304 openblas 170 | - mkl <2026 171 | - libcblas 3.11.0 4*_openblas 172 | - liblapacke 3.11.0 4*_openblas 173 | license: BSD-3-Clause 174 | license_family: BSD 175 | size: 18529 176 | timestamp: 1764823833499 177 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda 178 | sha256: 318f36bd49ca8ad85e6478bd8506c88d82454cc008c1ac1c6bf00a3c42fa610e 179 | md5: 72c8fd1af66bd67bf580645b426513ed 180 | depends: 181 | - __glibc >=2.17,<3.0.a0 182 | - libgcc >=14 183 | license: MIT 184 | license_family: MIT 185 | size: 79965 186 | timestamp: 1764017188531 187 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda 188 | sha256: 12fff21d38f98bc446d82baa890e01fd82e3b750378fedc720ff93522ffb752b 189 | md5: 366b40a69f0ad6072561c1d09301c886 190 | depends: 191 | - __glibc >=2.17,<3.0.a0 192 | - libbrotlicommon 1.2.0 hb03c661_1 193 | - libgcc >=14 194 | license: MIT 195 | license_family: MIT 196 | size: 34632 197 | timestamp: 1764017199083 198 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda 199 | sha256: a0c15c79997820bbd3fbc8ecf146f4fe0eca36cc60b62b63ac6cf78857f1dd0d 200 | md5: 4ffbb341c8b616aa2494b6afb26a0c5f 201 | depends: 202 | - __glibc >=2.17,<3.0.a0 203 | - libbrotlicommon 1.2.0 hb03c661_1 204 | - libgcc >=14 205 | license: MIT 206 | license_family: MIT 207 | size: 298378 208 | timestamp: 1764017210931 209 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-4_h0358290_openblas.conda 210 | build_number: 4 211 | sha256: 7abc88e2fdccddab27d2a889b9c9063df84a05766cc24828c9b5ca879f25c92c 212 | md5: 25f5e5af61cee1ffedd9b4c9947d3af8 213 | depends: 214 | - libblas 3.11.0 4_h4a7cf45_openblas 215 | constrains: 216 | - liblapack 3.11.0 4*_openblas 217 | - blas 2.304 openblas 218 | - liblapacke 3.11.0 4*_openblas 219 | license: BSD-3-Clause 220 | license_family: BSD 221 | size: 18521 222 | timestamp: 1764823852735 223 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda 224 | sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 225 | md5: 172bf1cd1ff8629f2b1179945ed45055 226 | depends: 227 | - libgcc-ng >=12 228 | license: BSD-2-Clause 229 | license_family: BSD 230 | size: 112766 231 | timestamp: 1702146165126 232 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda 233 | sha256: 1e1b08f6211629cbc2efe7a5bca5953f8f6b3cae0eeb04ca4dacee1bd4e2db2f 234 | md5: 8b09ae86839581147ef2e5c5e229d164 235 | depends: 236 | - __glibc >=2.17,<3.0.a0 237 | - libgcc >=14 238 | constrains: 239 | - expat 2.7.3.* 240 | license: MIT 241 | license_family: MIT 242 | size: 76643 243 | timestamp: 1763549731408 244 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h9ec8514_0.conda 245 | sha256: 25cbdfa65580cfab1b8d15ee90b4c9f1e0d72128f1661449c9a999d341377d54 246 | md5: 35f29eec58405aaf55e01cb470d8c26a 247 | depends: 248 | - __glibc >=2.17,<3.0.a0 249 | - libgcc >=14 250 | license: MIT 251 | license_family: MIT 252 | size: 57821 253 | timestamp: 1760295480630 254 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_16.conda 255 | sha256: 6eed58051c2e12b804d53ceff5994a350c61baf117ec83f5f10c953a3f311451 256 | md5: 6d0363467e6ed84f11435eb309f2ff06 257 | depends: 258 | - __glibc >=2.17,<3.0.a0 259 | - _openmp_mutex >=4.5 260 | constrains: 261 | - libgcc-ng ==15.2.0=*_16 262 | - libgomp 15.2.0 he0feb66_16 263 | license: GPL-3.0-only WITH GCC-exception-3.1 264 | size: 1042798 265 | timestamp: 1765256792743 266 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_16.conda 267 | sha256: 5f07f9317f596a201cc6e095e5fc92621afca64829785e483738d935f8cab361 268 | md5: 5a68259fac2da8f2ee6f7bfe49c9eb8b 269 | depends: 270 | - libgcc 15.2.0 he0feb66_16 271 | license: GPL-3.0-only WITH GCC-exception-3.1 272 | size: 27256 273 | timestamp: 1765256804124 274 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_16.conda 275 | sha256: 8a7b01e1ee1c462ad243524d76099e7174ebdd94ff045fe3e9b1e58db196463b 276 | md5: 40d9b534410403c821ff64f00d0adc22 277 | depends: 278 | - libgfortran5 15.2.0 h68bc16d_16 279 | constrains: 280 | - libgfortran-ng ==15.2.0=*_16 281 | license: GPL-3.0-only WITH GCC-exception-3.1 282 | size: 27215 283 | timestamp: 1765256845586 284 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_16.conda 285 | sha256: d0e974ebc937c67ae37f07a28edace978e01dc0f44ee02f29ab8a16004b8148b 286 | md5: 39183d4e0c05609fd65f130633194e37 287 | depends: 288 | - __glibc >=2.17,<3.0.a0 289 | - libgcc >=15.2.0 290 | constrains: 291 | - libgfortran 15.2.0 292 | license: GPL-3.0-only WITH GCC-exception-3.1 293 | size: 2480559 294 | timestamp: 1765256819588 295 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_16.conda 296 | sha256: 5b3e5e4e9270ecfcd48f47e3a68f037f5ab0f529ccb223e8e5d5ac75a58fc687 297 | md5: 26c46f90d0e727e95c6c9498a33a09f3 298 | depends: 299 | - __glibc >=2.17,<3.0.a0 300 | license: GPL-3.0-only WITH GCC-exception-3.1 301 | size: 603284 302 | timestamp: 1765256703881 303 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda 304 | sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f 305 | md5: 915f5995e94f60e9a4826e0b0920ee88 306 | depends: 307 | - __glibc >=2.17,<3.0.a0 308 | - libgcc >=14 309 | license: LGPL-2.1-only 310 | size: 790176 311 | timestamp: 1754908768807 312 | - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-4_h47877c9_openblas.conda 313 | build_number: 4 314 | sha256: 5a6ed95bf093d709c8ba8373890773b912767eafdd2e8e4ad0fa6413d13ae3c9 315 | md5: 8ba8431802764597f400ee3e99026367 316 | depends: 317 | - libblas 3.11.0 4_h4a7cf45_openblas 318 | constrains: 319 | - blas 2.304 openblas 320 | - libcblas 3.11.0 4*_openblas 321 | - liblapacke 3.11.0 4*_openblas 322 | license: BSD-3-Clause 323 | license_family: BSD 324 | size: 18533 325 | timestamp: 1764823871307 326 | - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda 327 | sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8 328 | md5: 1a580f7796c7bf6393fddb8bbbde58dc 329 | depends: 330 | - __glibc >=2.17,<3.0.a0 331 | - libgcc >=13 332 | constrains: 333 | - xz 5.8.1.* 334 | license: 0BSD 335 | size: 112894 336 | timestamp: 1749230047870 337 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda 338 | sha256: 3aa92d4074d4063f2a162cd8ecb45dccac93e543e565c01a787e16a43501f7ee 339 | md5: c7e925f37e3b40d893459e625f6a53f1 340 | depends: 341 | - __glibc >=2.17,<3.0.a0 342 | - libgcc >=13 343 | license: BSD-2-Clause 344 | license_family: BSD 345 | size: 91183 346 | timestamp: 1748393666725 347 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda 348 | sha256: a4a7dab8db4dc81c736e9a9b42bdfd97b087816e029e221380511960ac46c690 349 | md5: b499ce4b026493a13774bcf0f4c33849 350 | depends: 351 | - __glibc >=2.17,<3.0.a0 352 | - c-ares >=1.34.5,<2.0a0 353 | - libev >=4.33,<4.34.0a0 354 | - libev >=4.33,<5.0a0 355 | - libgcc >=14 356 | - libstdcxx >=14 357 | - libzlib >=1.3.1,<2.0a0 358 | - openssl >=3.5.2,<4.0a0 359 | license: MIT 360 | license_family: MIT 361 | size: 666600 362 | timestamp: 1756834976695 363 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda 364 | sha256: 199d79c237afb0d4780ccd2fbf829cea80743df60df4705202558675e07dd2c5 365 | md5: be43915efc66345cccb3c310b6ed0374 366 | depends: 367 | - __glibc >=2.17,<3.0.a0 368 | - libgcc >=14 369 | - libgfortran 370 | - libgfortran5 >=14.3.0 371 | constrains: 372 | - openblas >=0.3.30,<0.3.31.0a0 373 | license: BSD-3-Clause 374 | license_family: BSD 375 | size: 5927939 376 | timestamp: 1763114673331 377 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda 378 | sha256: 6f0e8a812e8e33a4d8b7a0e595efe28373080d27b78ee4828aa4f6649a088454 379 | md5: 2e1b84d273b01835256e53fd938de355 380 | depends: 381 | - __glibc >=2.17,<3.0.a0 382 | - libgcc >=14 383 | - libzlib >=1.3.1,<2.0a0 384 | license: blessing 385 | size: 938979 386 | timestamp: 1764359444435 387 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda 388 | sha256: 813427918316a00c904723f1dfc3da1bbc1974c5cfe1ed1e704c6f4e0798cbc6 389 | md5: 68f68355000ec3f1d6f26ea13e8f525f 390 | depends: 391 | - __glibc >=2.17,<3.0.a0 392 | - libgcc 15.2.0 he0feb66_16 393 | constrains: 394 | - libstdcxx-ng ==15.2.0=*_16 395 | license: GPL-3.0-only WITH GCC-exception-3.1 396 | size: 5856456 397 | timestamp: 1765256838573 398 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda 399 | sha256: 81f2f246c7533b41c5e0c274172d607829019621c4a0823b5c0b4a8c7028ee84 400 | md5: 1b3152694d236cf233b76b8c56bf0eae 401 | depends: 402 | - libstdcxx 15.2.0 h934c35e_16 403 | license: GPL-3.0-only WITH GCC-exception-3.1 404 | size: 27300 405 | timestamp: 1765256885128 406 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-h5347b49_1.conda 407 | sha256: 030447cf827c471abd37092ab9714fde82b8222106f22fde94bc7a64e2704c40 408 | md5: 41f5c09a211985c3ce642d60721e7c3e 409 | depends: 410 | - __glibc >=2.17,<3.0.a0 411 | - libgcc >=14 412 | license: BSD-3-Clause 413 | license_family: BSD 414 | size: 40235 415 | timestamp: 1764790744114 416 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda 417 | sha256: c180f4124a889ac343fc59d15558e93667d894a966ec6fdb61da1604481be26b 418 | md5: 0f03292cc56bf91a077a134ea8747118 419 | depends: 420 | - __glibc >=2.17,<3.0.a0 421 | - libgcc >=14 422 | license: MIT 423 | license_family: MIT 424 | size: 895108 425 | timestamp: 1753948278280 426 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda 427 | sha256: ec0735ae56c3549149eebd7dc22c0bed91fd50c02eaa77ff418613ddda190aa8 428 | md5: e512be7dc1f84966d50959e900ca121f 429 | depends: 430 | - __glibc >=2.17,<3.0.a0 431 | - icu >=75.1,<76.0a0 432 | - libgcc >=14 433 | - libiconv >=1.18,<2.0a0 434 | - liblzma >=5.8.1,<6.0a0 435 | - libxml2-16 2.15.1 ha9997c6_0 436 | - libzlib >=1.3.1,<2.0a0 437 | license: MIT 438 | license_family: MIT 439 | size: 45283 440 | timestamp: 1761015644057 441 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda 442 | sha256: 71436e72a286ef8b57d6f4287626ff91991eb03c7bdbe835280521791efd1434 443 | md5: e7733bc6785ec009e47a224a71917e84 444 | depends: 445 | - __glibc >=2.17,<3.0.a0 446 | - icu >=75.1,<76.0a0 447 | - libgcc >=14 448 | - libiconv >=1.18,<2.0a0 449 | - liblzma >=5.8.1,<6.0a0 450 | - libzlib >=1.3.1,<2.0a0 451 | constrains: 452 | - libxml2 2.15.1 453 | license: MIT 454 | license_family: MIT 455 | size: 556302 456 | timestamp: 1761015637262 457 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda 458 | sha256: 0694760a3e62bdc659d90a14ae9c6e132b525a7900e59785b18a08bb52a5d7e5 459 | md5: 87e6096ec6d542d1c1f8b33245fe8300 460 | depends: 461 | - __glibc >=2.17,<3.0.a0 462 | - libgcc >=14 463 | - libxml2 464 | - libxml2-16 >=2.14.6 465 | license: MIT 466 | license_family: MIT 467 | size: 245434 468 | timestamp: 1757963724977 469 | - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda 470 | sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 471 | md5: edb0dca6bc32e4f4789199455a1dbeb8 472 | depends: 473 | - __glibc >=2.17,<3.0.a0 474 | - libgcc >=13 475 | constrains: 476 | - zlib 1.3.1 *_2 477 | license: Zlib 478 | license_family: Other 479 | size: 60963 480 | timestamp: 1727963148474 481 | - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.2-py314hae3bed6_2.conda 482 | sha256: 4871db69d62586fa264373cb1fee0fd2e3bbed2cddeca66bc423ccc9836c2e45 483 | md5: ddd2ee75713129777aa3e3339f899008 484 | depends: 485 | - __glibc >=2.17,<3.0.a0 486 | - libgcc >=14 487 | - libxml2 488 | - libxml2-16 >=2.14.6 489 | - libxslt >=1.1.43,<2.0a0 490 | - libzlib >=1.3.1,<2.0a0 491 | - python >=3.14,<3.15.0a0 492 | - python_abi 3.14.* *_cp314 493 | license: BSD-3-Clause and MIT-CMU 494 | size: 1616783 495 | timestamp: 1762506575980 496 | - conda: https://conda.anaconda.org/conda-forge/noarch/mystmd-1.7.0-pyhcf101f3_0.conda 497 | sha256: 11c8fdb494493e636024696395cbf5271f4890a1d69009daa4df17128a8bf792 498 | md5: 8c0f1ed376697206261d1b99bd4858b6 499 | depends: 500 | - python >=3.10 501 | - nodejs >=18 502 | - python 503 | license: MIT 504 | license_family: MIT 505 | size: 2163398 506 | timestamp: 1764855843630 507 | - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda 508 | sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 509 | md5: 47e340acb35de30501a76c7c799c41d7 510 | depends: 511 | - __glibc >=2.17,<3.0.a0 512 | - libgcc >=13 513 | license: X11 AND BSD-3-Clause 514 | size: 891641 515 | timestamp: 1738195959188 516 | - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-25.2.1-h547ee38_0.conda 517 | sha256: c22302318ba1ad90a4293e133d6d47c6bf51e8b11b7e3a2a7f09fe6850937a2d 518 | md5: 4aa91331c5ca12a1fff56f323c4d611b 519 | depends: 520 | - __glibc >=2.28,<3.0.a0 521 | - libstdcxx >=14 522 | - libgcc >=14 523 | - libabseil >=20250127.1,<20250128.0a0 524 | - libabseil * cxx17* 525 | - zstd >=1.5.7,<1.6.0a0 526 | - libnghttp2 >=1.67.0,<2.0a0 527 | - libbrotlicommon >=1.2.0,<1.3.0a0 528 | - libbrotlienc >=1.2.0,<1.3.0a0 529 | - libbrotlidec >=1.2.0,<1.3.0a0 530 | - icu >=75.1,<76.0a0 531 | - libsqlite >=3.51.1,<4.0a0 532 | - openssl >=3.5.4,<4.0a0 533 | - libuv >=1.51.0,<2.0a0 534 | - libzlib >=1.3.1,<2.0a0 535 | - c-ares >=1.34.6,<2.0a0 536 | license: MIT 537 | size: 17246596 538 | timestamp: 1765357446065 539 | - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.5-py314h2b28147_0.conda 540 | sha256: 4fa3b8b80dd848a70f679b31d74d6fb28f9c4de9cd81086aa8e10256e9de20d1 541 | md5: 6d2cff81447b8fe424645d7dd3bde8bf 542 | depends: 543 | - python 544 | - libstdcxx >=14 545 | - libgcc >=14 546 | - __glibc >=2.17,<3.0.a0 547 | - libgcc >=14 548 | - libblas >=3.9.0,<4.0a0 549 | - liblapack >=3.9.0,<4.0a0 550 | - libcblas >=3.9.0,<4.0a0 551 | - python_abi 3.14.* *_cp314 552 | constrains: 553 | - numpy-base <0a0 554 | license: BSD-3-Clause 555 | license_family: BSD 556 | size: 8983459 557 | timestamp: 1763350996398 558 | - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda 559 | sha256: a47271202f4518a484956968335b2521409c8173e123ab381e775c358c67fe6d 560 | md5: 9ee58d5c534af06558933af3c845a780 561 | depends: 562 | - __glibc >=2.17,<3.0.a0 563 | - ca-certificates 564 | - libgcc >=14 565 | license: Apache-2.0 566 | license_family: Apache 567 | size: 3165399 568 | timestamp: 1762839186699 569 | - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py314ha0b5721_2.conda 570 | sha256: 0a86a582b906d9cfd4d2c59180898fe9d714b55eea7ced71630a1fedae206c62 571 | md5: fe3a5c8be07a7b82058bdeb39d33d93b 572 | depends: 573 | - __glibc >=2.17,<3.0.a0 574 | - libgcc >=14 575 | - libstdcxx >=14 576 | - numpy >=1.22.4 577 | - numpy >=1.23,<3 578 | - python >=3.14,<3.15.0a0 579 | - python-dateutil >=2.8.2 580 | - python-tzdata >=2022.7 581 | - python_abi 3.14.* *_cp314 582 | - pytz >=2020.1 583 | constrains: 584 | - pyarrow >=10.0.1 585 | - numba >=0.56.4 586 | - odfpy >=1.4.1 587 | - xlsxwriter >=3.0.5 588 | - tabulate >=0.9.0 589 | - html5lib >=1.1 590 | - lxml >=4.9.2 591 | - blosc >=1.21.3 592 | - s3fs >=2022.11.0 593 | - fsspec >=2022.11.0 594 | - psycopg2 >=2.9.6 595 | - pandas-gbq >=0.19.0 596 | - openpyxl >=3.1.0 597 | - qtpy >=2.3.0 598 | - python-calamine >=0.1.7 599 | - sqlalchemy >=2.0.0 600 | - pyqt5 >=5.15.9 601 | - bottleneck >=1.3.6 602 | - zstandard >=0.19.0 603 | - numexpr >=2.8.4 604 | - tzdata >=2022.7 605 | - scipy >=1.10.0 606 | - gcsfs >=2022.11.0 607 | - pyxlsb >=1.0.10 608 | - matplotlib >=3.6.3 609 | - pytables >=3.8.0 610 | - beautifulsoup4 >=4.11.2 611 | - pyreadstat >=1.2.0 612 | - fastparquet >=2022.12.0 613 | - xlrd >=2.0.1 614 | - xarray >=2022.12.0 615 | license: BSD-3-Clause 616 | license_family: BSD 617 | size: 15178918 618 | timestamp: 1764615084415 619 | - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.2-h32b2ec7_100_cp314.conda 620 | build_number: 100 621 | sha256: a120fb2da4e4d51dd32918c149b04a08815fd2bd52099dad1334647984bb07f1 622 | md5: 1cef1236a05c3a98f68c33ae9425f656 623 | depends: 624 | - __glibc >=2.17,<3.0.a0 625 | - bzip2 >=1.0.8,<2.0a0 626 | - ld_impl_linux-64 >=2.36.1 627 | - libexpat >=2.7.3,<3.0a0 628 | - libffi >=3.5.2,<3.6.0a0 629 | - libgcc >=14 630 | - liblzma >=5.8.1,<6.0a0 631 | - libmpdec >=4.0.0,<5.0a0 632 | - libsqlite >=3.51.1,<4.0a0 633 | - libuuid >=2.41.2,<3.0a0 634 | - libzlib >=1.3.1,<2.0a0 635 | - ncurses >=6.5,<7.0a0 636 | - openssl >=3.5.4,<4.0a0 637 | - python_abi 3.14.* *_cp314 638 | - readline >=8.2,<9.0a0 639 | - tk >=8.6.13,<8.7.0a0 640 | - tzdata 641 | - zstd >=1.5.7,<1.6.0a0 642 | license: Python-2.0 643 | size: 36790521 644 | timestamp: 1765021515427 645 | python_site_packages_path: lib/python3.14/site-packages 646 | - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda 647 | sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 648 | md5: 5b8d21249ff20967101ffa321cab24e8 649 | depends: 650 | - python >=3.9 651 | - six >=1.5 652 | - python 653 | license: Apache-2.0 654 | license_family: APACHE 655 | size: 233310 656 | timestamp: 1751104122689 657 | - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda 658 | sha256: e8392a8044d56ad017c08fec2b0eb10ae3d1235ac967d0aab8bd7b41c4a5eaf0 659 | md5: 88476ae6ebd24f39261e0854ac244f33 660 | depends: 661 | - python >=3.9 662 | license: Apache-2.0 663 | license_family: APACHE 664 | size: 144160 665 | timestamp: 1742745254292 666 | - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda 667 | build_number: 8 668 | sha256: ad6d2e9ac39751cc0529dd1566a26751a0bf2542adb0c232533d32e176e21db5 669 | md5: 0539938c55b6b1a59b560e843ad864a4 670 | constrains: 671 | - python 3.14.* *_cp314 672 | license: BSD-3-Clause 673 | license_family: BSD 674 | size: 6989 675 | timestamp: 1752805904792 676 | - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda 677 | sha256: 8d2a8bf110cc1fc3df6904091dead158ba3e614d8402a83e51ed3a8aa93cdeb0 678 | md5: bc8e3267d44011051f2eb14d22fb0960 679 | depends: 680 | - python >=3.9 681 | license: MIT 682 | license_family: MIT 683 | size: 189015 684 | timestamp: 1742920947249 685 | - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda 686 | sha256: 828af2fd7bb66afc9ab1c564c2046be391aaf66c0215f05afaf6d7a9a270fe2a 687 | md5: b12f41c0d7fb5ab81709fcc86579688f 688 | depends: 689 | - python >=3.10.* 690 | - yaml 691 | track_features: 692 | - pyyaml_no_compile 693 | license: MIT 694 | license_family: MIT 695 | size: 45223 696 | timestamp: 1758891992558 697 | - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda 698 | sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c 699 | md5: 283b96675859b20a825f8fa30f311446 700 | depends: 701 | - libgcc >=13 702 | - ncurses >=6.5,<7.0a0 703 | license: GPL-3.0-only 704 | license_family: GPL 705 | size: 282480 706 | timestamp: 1740379431762 707 | - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda 708 | sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d 709 | md5: 3339e3b65d58accf4ca4fb8748ab16b3 710 | depends: 711 | - python >=3.9 712 | - python 713 | license: MIT 714 | license_family: MIT 715 | size: 18455 716 | timestamp: 1753199211006 717 | - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda 718 | sha256: 1544760538a40bcd8ace2b1d8ebe3eb5807ac268641f8acdc18c69c5ebfeaf64 719 | md5: 86bc20552bf46075e3d92b67f089172d 720 | depends: 721 | - __glibc >=2.17,<3.0.a0 722 | - libgcc >=13 723 | - libzlib >=1.3.1,<2.0a0 724 | constrains: 725 | - xorg-libx11 >=1.8.12,<2.0a0 726 | license: TCL 727 | license_family: BSD 728 | size: 3284905 729 | timestamp: 1763054914403 730 | - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda 731 | sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 732 | md5: 4222072737ccff51314b5ece9c7d6f5a 733 | license: LicenseRef-Public-Domain 734 | size: 122968 735 | timestamp: 1742727099393 736 | - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda 737 | sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad 738 | md5: a77f85f77be52ff59391544bfe73390a 739 | depends: 740 | - libgcc >=14 741 | - __glibc >=2.17,<3.0.a0 742 | license: MIT 743 | license_family: MIT 744 | size: 85189 745 | timestamp: 1753484064210 746 | - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda 747 | sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 748 | md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 749 | depends: 750 | - __glibc >=2.17,<3.0.a0 751 | - libzlib >=1.3.1,<2.0a0 752 | license: BSD-3-Clause 753 | license_family: BSD 754 | size: 601375 755 | timestamp: 1764777111296 756 | --------------------------------------------------------------------------------