Repository: voxel51/fiftyone

Issue:
[BUG] fiftyone forces starlette=0.16.0 and it breaks integrations with applications that use FastAPI in newer versions.
### Instructions

Thank you for submitting an issue. Please refer to our
[issue policy](https://www.github.com/voxel51/fiftyone/blob/develop/ISSUE_POLICY.md)
for information on what types of issues we address.

**Please fill in this template to ensure a timely and thorough response.**

-   Place an "x" between the brackets next to an option if it applies. Example:
    -   [x] Selected option
-   Please delete this section (all content above this line) before submitting
    the issue

### System information

-   **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**: linux 18.04
-   **FiftyOne installed from (pip or source)**:pip
-   **FiftyOne version (run `fiftyone --version`)**:0.17.2
-   **Python version**:3.8

### Commands to reproduce

As thoroughly as possible, please provide the Python and/or shell commands used
to encounter the issue. Application steps can be described in the next section.
requriements.txt:
fastapi==0.79.0
fiftyone==0.17.2

```
pip install -r requirments.txt
```

### Describe the problem

fiftyone cannot be used with the newer versions of fastapi, because it forces starlette to be in the version starlette=0.16.0
Is it possible to add a condition like: starlette>=0.16.0. In this way it would not break apps that use fiftyone

### Code to reproduce issue
fastapi==0.79.0
fiftyone==0.17.2

pip install -r requirments.txt

### Other info / logs

es.
#0 388.1 
#0 388.1 The conflict is caused by:
#0 388.1     bentoml 1.0.4 depends on starlette
#0 388.1     fastapi 0.79.0 depends on starlette==0.19.1
#0 388.1     fiftyone 0.17.2 depends on starlette==0.16.0
#0 388.1 
#0 388.1 To fix this you could try to:
#0 388.1 1. loosen the range of package versions you've specified
#0 388.1 2. remove package versions to allow pip attempt to solve the dependency conflict
#0 388.1 
#0 388.1 ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
#0 388.1 WARNING: You are using pip version 22.0.4; however, version 22.3 is available.
#0 388.1 You should consider upgrading via the '/usr/bin/python -m pip install --upgrade pip' command.
------

### What areas of FiftyOne does this bug affect?

-   [X ] `App`: FiftyOne application issue
-   [ ] `Core`: Core `fiftyone` Python library issue
-   [ ] `Server`: Fiftyone server issue

### Willingness to contribute

The FiftyOne Community encourages bug fix contributions. Would you or another
member of your organization be willing to contribute a fix for this bug to the
FiftyOne codebase?

-   [ X] Yes. I can contribute a fix for this bug independently.
-   [ ] Yes. I would be willing to contribute a fix for this bug with guidance
        from the FiftyOne community.
-   [ ] No. I cannot contribute a bug fix at this time.



Discussion:
We've had issues with breaking changes in `starlette` with new versions, so we've had to pin an exact version in `fiftyone` to avoid issues.

We did upgrade to `starlette==0.20.4` as of `fiftyone==0.18.0` though. Hopefully that helps?
This is still relevant. The hard-coded `starlette` dependency not only prevents upgrading to the newest version. It also blocks applying security fixes made in https://www.starlette.io/release-notes/#0270. Could you please upgrade `starlette` to v0.27 at least?

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -67,7 +67,7 @@ def get_version():
     "setuptools",
     "sseclient-py>=1.7.2,<2",
     "sse-starlette>=0.10.3,<1",
-    "starlette>=0.24.0,<0.27",
+    "starlette>=0.24.0",
     "strawberry-graphql==0.138.1",
     "tabulate",
     "xmltodict",


Test patch: