from django.http import HttpResponse
from django.views.generic import View

from stackviz import settings

_cached_csv = None


def _load_csv():
    global _cached_csv

    if _cached_csv:
        return _cached_csv

    with open(settings.DSTAT_CSV, 'r') as f:
        _cached_csv = f.readlines()
        return _cached_csv


class DStatCSVEndpoint(View):
    def get(self, request):
        return HttpResponse(_load_csv(), content_type="text/csv")

import os

from django.http import HttpResponse, Http404
from django.views.generic import View

from stackviz import settings

_cached_csv = None


def _load_csv():
    global _cached_csv

    if _cached_csv:
        return _cached_csv

    try:
        with open(settings.DSTAT_CSV, 'r') as f:
            _cached_csv = f.readlines()
            return _cached_csv
    except IOError:
        return None


class DStatCSVEndpoint(View):
    def get(self, request):
        csv = _load_csv()

        if not csv:
            raise Http404("DStat log not loaded.")

        return HttpResponse(csv, content_type="text/csv")

Return a 404 error when no dstat csv can be loaded
Return a 404 error when no dstat csv can be loaded

+ import os
+ 
- from django.http import HttpResponse
+ from django.http import HttpResponse, Http404
  from django.views.generic import View
  
  from stackviz import settings
  
  _cached_csv = None
  
  
  def _load_csv():
      global _cached_csv
  
      if _cached_csv:
          return _cached_csv
  
+     try:
-     with open(settings.DSTAT_CSV, 'r') as f:
+         with open(settings.DSTAT_CSV, 'r') as f:
-         _cached_csv = f.readlines()
+             _cached_csv = f.readlines()
-         return _cached_csv
+             return _cached_csv
+     except IOError:
+         return None
  
  
  class DStatCSVEndpoint(View):
      def get(self, request):
-         return HttpResponse(_load_csv(), content_type="text/csv")
+         csv = _load_csv()
  
+         if not csv:
+             raise Http404("DStat log not loaded.")
+ 
+         return HttpResponse(csv, content_type="text/csv")
+ 
Return a 404 error when no dstat csv can be loaded
## Code Before:
from django.http import HttpResponse
from django.views.generic import View

from stackviz import settings

_cached_csv = None


def _load_csv():
    global _cached_csv

    if _cached_csv:
        return _cached_csv

    with open(settings.DSTAT_CSV, 'r') as f:
        _cached_csv = f.readlines()
        return _cached_csv


class DStatCSVEndpoint(View):
    def get(self, request):
        return HttpResponse(_load_csv(), content_type="text/csv")

## Instruction:
Return a 404 error when no dstat csv can be loaded
## Code After:
import os

from django.http import HttpResponse, Http404
from django.views.generic import View

from stackviz import settings

_cached_csv = None


def _load_csv():
    global _cached_csv

    if _cached_csv:
        return _cached_csv

    try:
        with open(settings.DSTAT_CSV, 'r') as f:
            _cached_csv = f.readlines()
            return _cached_csv
    except IOError:
        return None


class DStatCSVEndpoint(View):
    def get(self, request):
        csv = _load_csv()

        if not csv:
            raise Http404("DStat log not loaded.")

        return HttpResponse(csv, content_type="text/csv")
