Skip to content

Dependency on flatdict Breaks some builds #496

@the-real-mathew-moon

Description

@the-real-mathew-moon

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request.
  • Please do not leave +1 or me too comments, they generate extra noise for issue followers and do not help prioritize the request.
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment.
    Before submitting a bug report, we ask that you first search existing issues and pull requests to see if someone else may have experienced the same issue or may have already submitted a fix for it.

Python Version & Okta SDK Version(s)

Python v3.14, v3.13
okta 3.1.0, 3.0.0

Affected Class/Method(s)

okta.*

Customer Information

Organization Name: hingehealth-wf
Paid Customer: yes

Code Snippet

# Your code here

Debug Output / Traceback

│ Error Message: ERROR: Could not find a version that satisfies the requirement flatdict>=4.0.1 (from okta) (from versions: 1.1.3, 1.2.0, 2.0.0, 2.0.1, 3.0.0, 3.0.1, 3.1.0, 3.1.1, 3.2.0, 3.2.1, 3.3.0, 3.4.0)
│ ERROR: No matching distribution found for flatdict>=4.0.1

Expected Behavior

Installing the package, regardless of pip options, should result in a clean install.

Actual Behavior

Installing with pip install --no-binary :all: results in the above error. The flatdict library only distributes sdists, and so it cannot be installed when it is required to use pre-built packages. This means that installers, such as those that have to build for different architectures than their build environment, cannot install the package. An example is building an AWS Lambda function. You would normally do something like this to build the package:

pip3 install \
  --upgrade \
  --no-cache :all: \
  --no-cache-dir \
  --platform manylinux2014_x86_64 \
  --implementation cp \
  --target /lambda \
"okta>=3.0.0"

However, installing in this way is not possible. Installing without --no-cache :all: is not possible when --patform or --implementation are set. It's worth noting that the flatdict library hasn't seen an update in around 5 years and so is not likely to see any love.

Steps to reproduce

pip3 install \
  --upgrade \
  --no-cache :all: \
  --no-cache-dir \
  --platform manylinux2014_x86_64 \
  --implementation cp \
  --target /lambda \
"okta>=3.0.0"

References

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions